Meta Description, Robots and Canonical
Three head entries that shape how a page appears in search results, whether it is indexed at all, and which URL gets the credit.
-
HTML Basics
- What is HTML: The Structure Layer of Every Web Page
- HTML Document Structure: DOCTYPE, html, head and body
- Elements, Tags and Attributes: The Vocabulary of HTML
- HTML Comments: Notes That Ship With Your Code
- Block Level and Inline Elements
- Writing and Running Your First HTML Page
- How a Browser Turns Markup Into a Page
- Text and Formatting
- Links and Navigation
- Images and Media
- Lists
- Tables
-
Forms
- Form Structure: form, action and method
- Input Types: Text, Email, Number, Date and the Rest
- Labels: The Most Important Element in a Form
- Checkboxes, Radio Buttons and Grouping
- select, option, optgroup and datalist
- textarea, File Uploads and Hidden Fields
- Buttons: submit, reset and button
- Built In Form Validation
- GET or POST: What Happens When a Form Is Submitted
- Semantic HTML
- HTML5 Features
- Head and Metadata
- HTML with CSS
- HTML with JavaScript
- Accessibility
-
HTML SEO
- How Google Works: Crawling, Indexing and Ranking
- SEO Friendly HTML Structure
- Titles and Descriptions That Earn Clicks
- Headings and Content Structure for Search
- Internal Linking and Anchor Text
- robots.txt and XML Sitemaps
- Canonical URLs and Duplicate Content
- Structured Data and JSON-LD
- Image SEO
- Core Web Vitals and Mobile Friendliness
- DevTools and Debugging
- Editor Productivity
- HTML Best Practices
- HTML Projects
- Advanced Projects
- Practice and Exams
Meta description
<meta name="description" content="A three year design course in Pune covering product and communication design, taught through studio projects.">The description is a summary of the page. It is not a ranking factor - Google has said so repeatedly - but it is frequently the snippet shown beneath the title in a search result, and the snippet is what decides whether anyone clicks.
Writing one
- Around one hundred and fifty to one hundred and sixty characters. Longer is truncated with an ellipsis.
- Unique per page. Duplicates are reported in Search Console.
- Describe the page accurately. A misleading snippet produces a click and an immediate return, which helps nobody.
- Include the terms someone would search for, naturally. Matching words are shown in bold in the result, which draws the eye.
- Write it as a sentence for a person, not as a keyword list.
<!-- weak -->
<meta name="description" content="design course, design college, pune, admission, apply">
<!-- weak: says nothing -->
<meta name="description" content="Welcome to our website. Learn more about us.">
<!-- good -->
<meta name="description" content="A three year design course in Pune. Studio based teaching, sixty places a year, applications open on 1 June.">Google often ignores the description and generates its own snippet from the page, particularly when the query matches text further down. That is not a failure; it means the page content is doing its job. Write a good description anyway - it is what social platforms and many other tools use.
The robots meta tag
<meta name="robots" content="index, follow"> <!-- the default, so unnecessary -->
<meta name="robots" content="noindex, follow"> <!-- do not list this page -->
<meta name="robots" content="noindex, nofollow"> <!-- and do not follow its links -->
<meta name="robots" content="noarchive"> <!-- no cached copy -->
<meta name="robots" content="nosnippet"> <!-- no text snippet -->
<meta name="robots" content="max-image-preview:large">| Value | Effect |
|---|---|
index / noindex | May this page appear in results? |
follow / nofollow | Should links on it be crawled? |
noarchive | No cached copy offered |
nosnippet | No description shown |
noimageindex | Images on the page not indexed |
max-snippet:150 | Cap the snippet length |
Reasonable uses of noindex: thank you pages, internal search result pages, printer friendly duplicates, staging environments, filtered listing pages that produce endless near duplicates.
The trap that costs real traffic
A noindex left on a staging site and copied to production removes the entire site from search. It is a two word mistake with a several week recovery time, and it happens regularly. Check it at every launch.
noindex and robots.txt do different things
This distinction matters and is widely misunderstood.
robots.txtasks a crawler not to fetch a URL.noindexasks it not to list the page.
If a page is blocked in robots.txt, the crawler never fetches it and therefore never sees the noindex. The URL can still appear in results, listed with no description, because other pages link to it. To remove a page from search, allow it to be crawled and serve noindex.
The canonical link
<link rel="canonical" href="https://example.edu/courses/design">Says: of all the URLs that show this content, this is the one that should be indexed.
The same content is reachable at more URLs than most people realise:
https://example.edu/courses/design
https://example.edu/courses/design/
https://www.example.edu/courses/design
http://example.edu/courses/design
https://example.edu/courses/design?utm_source=newsletter
https://example.edu/courses/design?ref=facebook
https://example.edu/courses/design/index.htmlTo a search engine these are seven pages with identical content. The signals split across all of them, and none ranks as well as one consolidated page would. A canonical tag on every one of them, all pointing at the same URL, merges them.
Rules
- Use an absolute URL, including the scheme and host.
- Every page should have one, including the canonical page itself pointing at itself.
- Only one canonical per page. Two is treated as none.
- It is a strong hint, not a command. A canonical pointing at unrelated content is ignored.
- Keep it consistent with the sitemap, the internal links and any redirects.
Cross domain canonicals
<!-- on a syndicated copy, pointing back to the original -->
<link rel="canonical" href="https://original.example/articles/bus-timetable">The correct way to syndicate an article without competing with yourself.
Language and region
<link rel="alternate" hreflang="en" href="https://example.edu/courses/design">
<link rel="alternate" hreflang="hi" href="https://example.edu/hi/courses/design">
<link rel="alternate" hreflang="x-default" href="https://example.edu/courses/design">hreflang tells a search engine which version to show which audience. The set must be reciprocal: every version must list every other version, including itself, or the whole group is ignored.
Meta tags that do nothing
<!-- ignored by every major search engine since roughly 2009 -->
<meta name="keywords" content="design, course, pune, admission">
<!-- no ranking value -->
<meta name="author" content="...">
<meta name="revisit-after" content="7 days">
<meta name="rating" content="general">The keywords tag was abused into uselessness and has been ignored for well over a decade. It costs nothing to include and gains nothing; some sites keep it for internal search tooling, which is the only remaining reason.
Important rules
- The description is not a ranking factor but heavily influences clicks.
- A page blocked in
robots.txtnever has itsnoindexread. - Canonical URLs must be absolute.
- One canonical and one robots tag per page.
hreflangsets must be reciprocal.- The keywords meta tag has no effect.
Common mistakes
- The same description on every page, or none at all.
- Descriptions written as keyword lists.
- Shipping a staging
noindexto production. - Blocking a page in
robots.txtand expectingnoindexto work. - Relative canonical URLs.
- Canonical tags pointing at the home page from every page, deindexing the whole site.
- Non reciprocal
hreflangsets.
Best practices
- Write a unique description for every page, around one hundred and fifty five characters.
- Put a self referencing canonical on every page.
- Use
noindexdeliberately, and audit for it before every launch. - Keep canonical, sitemap and internal links pointing at the same URL form.
- Choose one host form - with or without
www- and redirect the other. - Verify with Search Console after launch rather than assuming.
Practice
- Write descriptions for five pages and count the characters in each.
- Reach the same page through four different URL forms and add a canonical to consolidate them.
- Explain why a page blocked in
robots.txtcan still appear in search results. - Add
hreflangfor two language versions and verify each links to the other.