On-page SEO checklist: 34 checks for every page
On-page SEO is the work you do on the page itself so search engines understand it and people choose it. That means matching what the searcher wants, writing a clear title and description, using headings, keeping one short URL, linking with descriptive words, adding alt text, using structured data Google still supports, loading fast on a phone and showing who wrote the page. This checklist covers 34 checks, each with a way to confirm it worked.
- Start with the search. Give each main search one page, built the way searchers clearly want it.
- Google writes title links and snippets itself, mainly from your title element, main heading and page text. Make them unique and descriptive, and it usually keeps them.
- INP replaced FID as a Core Web Vital in March 2024. Good means LCP of 2.5 seconds or less, INP of 200 milliseconds or less and CLS of 0.1 or less.
- FAQ rich results no longer show in Google, and HowTo is no longer a supported feature. Mark up only features Google still supports, and only what the page shows.
- Judge the work by the leads and sales search brings, not by a plugin score.
What is on-page SEO, and why check it?
On-page SEO covers everything on the page that you control: the words, the title and description, headings, the URL, links, images, structured data, and how fast the page loads and responds. Off-page work, such as earning links, happens elsewhere. This list touches technical SEO only where it decides whether a single page can be found.
Why bother? A page Google cannot understand, or one that people skip in the results, brings no leads. Most on-page fixes are cheap, but templates repeat the same mistake on every page they build.
If you want a team to run this list across your whole site and rank the fixes by the leads and sales at stake, our SEO audit service does that. If you run a Shopify store, our Shopify SEO checklist is the store-specific version of this list.
The checklist at a glance
| Part | What it covers | Checks |
|---|---|---|
| 1 | Search intent and keywords | 1 to 4 |
| 2 | Title links and snippets | 5 to 10 |
| 3 | Headings and page layout | 11 to 12 |
| 4 | URLs, canonicals and redirects | 13 to 16 |
| 5 | Internal and external links | 17 to 19 |
| 6 | Images and alt text | 20 to 23 |
| 7 | Structured data | 24 to 26 |
| 8 | Page experience and mobile | 27 to 30 |
| 9 | Helpful content and trust | 31 to 33 |
| 10 | Indexing | 34 |
Each check below has three parts: what to do, why it matters, and how to verify it.
Part 1: Search intent and keywords
1. Match the page to the search intent
What to do. Search your main query in a private window and look at what ranks. Are the top results product pages, guides, comparisons, local listings or videos? Build the kind of page searchers clearly want.
Why. Google’s guidance on helpful content is built around pages made for people, not pages made to attract search visits. A guide struggles on a search where people want to buy, and a sales page struggles where they want to learn.
How to verify. The page type matches most of the top results, and the first screen answers the question the search implies.
2. Give each main search one page
What to do. Pick one main search for each important page, plus a few close variations. If two of your pages chase the same search, merge them, redirect one to the other, or change one to target a different search and link between them.
Why. When two pages compete, links and attention are split, and Google has to guess which one to show.
How to verify. In Search Console, open the Performance report, filter by the query and look at the Pages tab. If two of your URLs keep swapping for the same query, they are competing.
3. Use the words searchers use, naturally
What to do. Use the main search and its natural variations in the title, the main heading, the opening paragraph and the subheadings where they read well. Think of the different ways a customer might phrase the same need, and use them in normal sentences.
Why. Readers trust a page that uses their own words for their problem. Google’s SEO Starter Guide warns against excessively repeating the same words, which it calls keyword stuffing, and says Google Search does not use the keywords meta tag. The guide also says keywords in the domain name or URL path alone have hardly any effect beyond appearing in breadcrumbs.
How to verify. Read the page aloud. No sentence exists only to repeat the keyword, and a customer would recognise their own words.
4. Answer the main question near the top
What to do. Put a direct answer, a short summary or the key offer in the first paragraph or two. Then go into detail.
Why. Google says snippets are primarily created from the page content itself. A clear answer near the top gives Google good text to show, and it keeps the reader who wanted a quick answer.
How to verify. Someone who reads only the first 100 words knows what the page offers or what the answer is.
Part 2: Title links and snippets
5. Write a unique, descriptive title element
What to do. Give every page its own title element that says what the page is about. Avoid vague labels such as “Home” or “Services”, and avoid template titles where only one word changes from page to page.
Why. Google’s guide to title links asks for titles that are descriptive and concise, warns against repeating keywords, and says boilerplate titles that differ by a single detail make results hard to tell apart.
How to verify. Crawl your site with any crawler and sort the titles. There should be no blanks and no duplicates on pages you want found.
6. Keep the title short and the brand at one end
What to do. Put the words that matter most first. Add your brand at the start or the end, separated by a dash, colon or pipe. Save a longer brand statement for the home page.
Why. Google sets no limit on title length, but it truncates title links as needed, typically to fit the width of the device. Words at the end are the first to go.
How to verify. Search for the page on a phone. The words a buyer cares about are visible before the cut.
7. Make the main heading match the title
What to do. Make the first visible main heading (usually the H1) say the same thing as the title element, in similar words.
Why. Google generates title links from several sources, including the title element, the main visible title, headings such as the H1, the og:title tag, anchor text in links to the page and WebSite structured data. When they disagree, Google is more likely to show something other than your title.
How to verify. Search for the page. If Google shows a different title, check whether your title is vague, stuffed with keywords or out of step with the main heading.
8. Check the social title (og:title)
What to do. If your site sets an og:title tag for social sharing, keep it consistent with the page title.
Why. In August 2024 Google added og:title to the sources it can use to generate title links. A stale or generic og:title is one more conflicting signal.
How to verify. View the page source and compare the title element with the og:title tag.
9. Write a meta description for key pages
What to do. Write a description for each important page that summarises what it offers, with specifics such as price, location, opening hours or who the service is for.
Why. Google may use the meta description when it describes the page more accurately than the page text. There is no length limit, but snippets are truncated to fit the device. Google calls identical descriptions on every page unhelpful, and says keyword lists are less likely to be shown.
How to verify. Crawl the site and list pages with a missing or duplicated description. Fix your top pages first.
10. Control snippets only when you must
What to do. Leave snippet controls off unless you have a reason. Google offers the nosnippet rule to show no snippet, max-snippet to limit its length, and the data-nosnippet attribute to hide one part of a page.
Why. These controls are useful for, say, a paywalled section. Applied by mistake in a template, they leave your listing with no description at all.
How to verify. Search your page source and templates for nosnippet and max-snippet. Each use should have a reason.
Part 3: Headings and page layout
11. Use headings to show the outline
What to do. Give the page one clear main heading, then subheadings for each section. Phrase subheadings as the questions or tasks readers have in mind.
Why. Google says heading order does not matter to it, and there is no ideal number of headings. Headings still matter for people: most visitors scan, and a clear outline lets them jump to the part they need.
How to verify. Read the headings alone. They should work as a table of contents for the page.
12. Break long text into short parts
What to do. Keep paragraphs short. Use lists for steps and options, and tables for comparisons, prices and specifications.
Why. A wall of text loses readers on a phone, and a table gives a clear summary.
How to verify. Scroll the page on a phone. No paragraph fills the screen, and every comparison is in a list or a table.
Part 4: URLs, canonicals and redirects
13. Use short, readable URLs with hyphens
What to do. Use a few readable words in each URL, separated by hyphens: /seo-audit/ rather than /p?id=4832 or /seo_audit/.
Why. Google recommends readable words rather than long ID numbers, and hyphens rather than underscores to separate words. It also advises keeping URLs short by removing parameters that do not change the content, and avoiding session IDs in URLs.
How to verify. Look at the URL. A customer can guess what the page is about from it.
14. Keep one URL per page, set by a canonical
What to do. When the same content is reachable at several URLs (tracking codes, sort orders, print versions), name the main one with a rel=”canonical” link, or redirect the duplicates.
Why. Google calls redirects and rel=”canonical” strong signals, and a sitemap listing a weak one. If you say nothing, Google picks the version it thinks is best. Do not use robots.txt or noindex to choose a canonical: Google says blocked URLs can still be indexed without their content, and noindex removes the page from Search.
How to verify. In Search Console’s Page indexing report, look for “Duplicate, Google chose different canonical than user”. Inspect an important URL to see the Google-selected canonical.
15. Redirect old URLs to their new home
What to do. When you move or rename a page, add a permanent (301) redirect from the old URL to the new one, and update your own menus and links to point straight at the new URL.
Why. Google’s Page indexing help says a removed page with no replacement can simply return 404, but a page that moved is usually fixed with a 301 redirect. A redirect is also a strong signal of which URL should be canonical.
How to verify. Crawl the site and list internal links that point at redirects or at 404 pages. Each one should point at the final URL.
16. Settle upper case, lower case and parameters
What to do. Pick one form for every URL, usually lower case, and make the other forms redirect to it or declare it as canonical.
Why. Google says its URL handling is case sensitive, so /Pricing/ and /pricing/ are two URLs to Google even if your server shows the same page for both.
How to verify. Type an upper case version of one of your URLs. It should redirect to the lower case version or carry a canonical that points to it.
Part 5: Internal and external links
17. Link every important page from another page
What to do. Make sure each page you want found has at least one link from another page on your site, using a normal HTML link (an a element with an href).
Why. Google says every page you care about should have a link from at least one other page on your site, and that it can generally only crawl a link if it is an a element with an href.
How to verify. Run a crawl from your home page and compare the pages it finds with your sitemap. Pages in the sitemap that the crawl never reached are orphans.
18. Write anchor text that says where the link goes
What to do. Use the words of the destination as the link text: “our pricing page”, “how to choose an SEO expert”. Avoid “click here” and “read more”.
Why. Google says good anchor text is descriptive, reasonably concise and relevant to the page it is on. For an image used as a link, the alt text acts as the anchor text.
How to verify. Read only the links on the page. Each one tells you where it goes.
19. Link out to sources, with the right rel value
What to do. Link to the sources you rely on. Mark paid links with rel=”sponsored” and links that users add, such as forum posts, with rel=”ugc”. Use rel=”nofollow” when you do not want to vouch for a site.
Why. Google’s link guidance sets out these three values: sponsored for links you were paid to place, ugc for user-generated links, and nofollow for sources you do not trust or do not want to pass your reputation to. It also says not to apply nofollow to every external link. Linking to good sources helps readers check your claims.
How to verify. Every paid placement or affiliate link on the page carries rel=”sponsored”.
Part 6: Images and alt text
20. Write alt text for meaningful images
What to do. Describe each meaningful image in a short phrase, as you would to someone on the phone: “Blue running shoe, side view”, not “shoe shoes running shoe best shoe”.
Why. Google calls alt text the most important attribute for giving it information about an image. It asks for useful, information-rich text that uses keywords appropriately, and discourages stuffing keywords into alt attributes. Alt text also helps people who use screen readers.
How to verify. A crawler or browser extension can list images with missing alt text. Purely decorative images can have empty alt text.
21. Name image files descriptively
What to do. Rename files before you upload them: blue-running-shoe-side.jpg rather than IMG_2489.jpg.
Why. Google asks for short, descriptive file names and says generic names such as image1.jpg should be avoided where possible.
How to verify. Open the image in a new tab and read the file name in the address bar.
22. Use HTML img elements and responsive sizes
What to do. Show important images with an img element, not as a CSS background. Offer sizes for different screens with srcset, and always include a fallback src.
Why. Google says it does not index CSS images. It supports BMP, GIF, JPEG, PNG, WebP, SVG and AVIF, and recommends a fallback src for crawlers that do not support srcset.
How to verify. Right-click an important image. If the browser offers “Open image in new tab”, it is a real image element.
23. Place images near the text they support
What to do. Put each image next to the paragraph it illustrates, on a page about the same subject, and add a caption where it helps.
Why. Google uses the surrounding text to understand an image, and its SEO Starter Guide advises placing images near relevant text.
How to verify. Each image sits beside the words that explain it, not in a gallery cut off from the text.
Part 7: Structured data
24. Mark up a feature Google still supports
What to do. Add structured data for the features that fit your page, in JSON-LD. Common ones on business sites are Organization, Local business, Breadcrumb, Article, Product, Review snippet, Event, Video, Software app and Profile page. Google’s search gallery lists every supported feature.
Why. Google recommends JSON-LD as the easiest format to set up and maintain. Structured data can make a result more engaging, but it is not a promise: Google notes that the actual appearance in search results might be different. Markup uses the schema.org vocabulary, but Google’s documentation decides how Google treats it.
How to verify. The type you add is in the search gallery.
25. Mark up only what the page shows
What to do. Make every value in your markup match something a visitor can see on the page: the same price, the same rating, the same address.
Why. Google advises against marking up information that is not visible to the user, even if it is accurate. It also asks site owners to test markup during development and keep monitoring it, because templates and serving problems can break it later.
How to verify. Run the page through Google’s Rich Results Test, then watch the structured data reports in Search Console for new errors.
26. Remove markup that no longer shows anything
What to do. Stop adding markup for features Google has retired, and review templates that still add it.
Why. Google’s documentation updates record the changes. FAQ rich results stopped showing from 7 May 2026, and Google removed the FAQ documentation in June 2026. The sitelinks search box was removed from results in November 2024. HowTo is no longer on the list of supported features. Breadcrumbs, since January 2025, show on desktop results only.
How to verify. Search your templates for FAQPage, HowTo and SearchAction markup. Keep visible questions and answers that help readers.
Part 8: Page experience and mobile
27. Pass the Core Web Vitals
What to do. Measure the three Core Web Vitals on your important templates and fix the ones that miss.
| Measure | What it checks | Good score |
|---|---|---|
| Largest Contentful Paint (LCP) | How fast the main content shows | 2.5 seconds or less |
| Interaction to Next Paint (INP) | How fast the page responds to taps and clicks | 200 milliseconds or less |
| Cumulative Layout Shift (CLS) | How much the page jumps while it loads | 0.1 or less |
Why. Google says Core Web Vitals are used by its ranking systems, but also that it always seeks to show the most relevant content, even if the page experience is sub-par. Google’s guidance is to measure each value at the 75th percentile of real visits, separately for mobile and desktop. INP replaced First Input Delay as a Core Web Vital in March 2024, so ignore any checklist that still uses FID. If the theme itself is the bottleneck and only a rebuild will fix it, our sister studio W3Experts builds fast sites.
How to verify. Open the Core Web Vitals report in Search Console, or run the URL through PageSpeed Insights and read the field data from real users, not only the lab score.
28. Serve every page over HTTPS
What to do. Make every page load over HTTPS, and make the http version of each URL redirect to it.
Why. Secure serving is one of the questions in Google’s own page experience self-assessment. Browsers also warn visitors about pages that are not secure.
How to verify. Type the http:// version of your domain in a private window. It should land on https://, with no browser warning.
29. Keep ads and pop-ups out of the way
What to do. Avoid pop-ups that cover the content as the page opens, and limit ads so they do not push the content down.
Why. Google’s page experience self-assessment asks whether ads interfere with the main content, whether intrusive interstitials are avoided, and whether visitors can easily tell the main content apart.
How to verify. Open the page on a phone. The main content is visible without closing anything.
30. Give mobile visitors the same page
What to do. Make sure the mobile version has the same main content, title, meta description, structured data and alt text as the desktop version.
Why. Google uses the mobile version of a site’s content, crawled with its smartphone agent, for indexing and ranking. Content that only loads after a click, swipe or typing may be missed, because Google does not perform those actions.
How to verify. Compare the page on a phone and a desktop. Nothing important is missing on the phone, and the robots meta tags are the same on both.
Part 9: Helpful content and trust
31. Write for people first
What to do. Add something the reader cannot get elsewhere: your prices, your process, your own data, photos of your own work, a clear comparison. Cut paragraphs that only restate other pages.
Why. Google’s helpful content guidance asks whether content provides original information, reporting, research or analysis, and whether you would bookmark or share it. It warns against mainly summarising what others say, and against writing to a word count: Google says it has no preferred one.
How to verify. Ask what a reader learns on your page that the top three results do not tell them. If the answer is nothing, the page needs more than tweaks.
32. Show who made the page, how and why
What to do. Add a byline where readers would expect one, with a short bio that shows real experience. Explain how you tested or researched anything you recommend. Make it clear who the business is and how to contact it.
Why. Google’s guidance asks three questions of any page: who made it, how and why. It describes E-E-A-T as experience, expertise, authoritativeness and trustworthiness, and says trust matters most. E-E-A-T is not a specific ranking factor, Google says, but its systems use factors that can identify content with good E-E-A-T, such as whether it is written or reviewed by someone who demonstrably knows the topic.
How to verify. A stranger can tell from the page who wrote it, why they are qualified and how to reach the business.
33. Fix factual errors and keep the page current
What to do. Check every price, date, rule and product name. Update the page when facts change, and change its date only when you change its content.
Why. Google’s helpful content questions ask whether content has easily verified factual errors, and whether you change dates to make pages seem fresh when the content has not substantially changed. The same guidance asks whether the main heading or page title avoids exaggerating or being shocking.
How to verify. Each fact on the page can be traced to a source or to your own records, and the updated date matches the last real change.
Part 10: Indexing
34. Confirm the page is indexed
What to do. Inspect each new or changed important page with the URL Inspection tool in Search Console, and read the Page indexing report every month.
Why. A page that is not indexed cannot rank. Google says not to expect every URL on a site to be indexed, but your key pages should be. Common reasons it lists are a noindex rule, “Crawled, currently not indexed”, duplicates, pages blocked by robots.txt and 404 errors.
How to verify. The URL Inspection tool reports the page as indexed. After you fix a reason in the Page indexing report, use Validate fix; Google says validation can take about two weeks.
All 34 checks in one table
| No. | Check | Quick test |
|---|---|---|
| 1 | Match the page to the search intent | Page type matches top results |
| 2 | Give each main search one page | No URLs swapping for one query |
| 3 | Use searchers’ words, naturally | Reads well aloud |
| 4 | Answer the main question near the top | Answer in the first 100 words |
| 5 | Unique, descriptive title element | No blank or duplicate titles |
| 6 | Short title, brand at one end | Key words visible on a phone |
| 7 | Main heading matches the title | Google shows your title |
| 8 | og:title matches the title | Same in the page source |
| 9 | Meta description on key pages | None missing on top pages |
| 10 | Snippet controls only on purpose | No stray nosnippet |
| 11 | Headings show the outline | Headings read as contents |
| 12 | Long text in short parts | No screen-filling paragraphs |
| 13 | Short, readable URLs with hyphens | URL describes the page |
| 14 | One URL per page, set by a canonical | Google picked your canonical |
| 15 | Old URLs redirect to their new home | No internal links to redirects |
| 16 | One case, no needless parameters | Upper case URL redirects |
| 17 | Every important page linked internally | No orphan pages |
| 18 | Descriptive anchor text | Links make sense alone |
| 19 | Right rel value on outbound links | Paid links marked sponsored |
| 20 | Alt text on meaningful images | No missing alt text |
| 21 | Descriptive image file names | No IMG_1234 names |
| 22 | HTML img elements, responsive sizes | Real img elements |
| 23 | Images near the text they support | Image beside its text |
| 24 | Supported markup, in JSON-LD | Type is in the gallery |
| 25 | Markup matches the visible page | Passes Rich Results Test |
| 26 | Retired markup removed | No new FAQPage or HowTo |
| 27 | Core Web Vitals pass | Good field data |
| 28 | HTTPS on every page | http redirects to https |
| 29 | Ads and pop-ups out of the way | Content visible at once |
| 30 | Same page for mobile visitors | Same content on phone |
| 31 | Written for people first | Adds what others lack |
| 32 | Shows who made it, how and why | Byline and contact visible |
| 33 | Facts checked, page current | Date matches last change |
| 34 | Page is indexed | URL Inspection says indexed |
How often should you run this checklist?
Run all 34 checks on every new page and every template. One fix to a template fixes every page built from it. Then check the Page indexing and Core Web Vitals reports monthly, and crawl the site every quarter and after any redesign or migration. Google must crawl a page again before it sees an edit, so allow a few weeks before you judge a change.
How do you know the checklist worked?
Do not judge on-page work by one ranking on one day. Compare clicks and impressions for the changed pages in Search Console over a few weeks, then follow those visits to enquiries, calls and orders in your analytics. Our guide to measuring SEO ROI explains how to tie search traffic to revenue.
On-page work is one part of a larger plan. Keywords, content, technical health and links work together, and our explainer on what an SEO campaign includes shows how the parts fit. If you plan to hire someone to run it, our guide on how to choose an SEO expert lists the questions to ask and the warning signs to watch for.
Frequently asked questions
Is on-page SEO enough to rank?
Not on its own for most competitive searches. On-page work makes a page clear, fast and trustworthy, which is the base everything else builds on. Ranking also depends on how useful the page is compared with others, the site’s overall quality and the links and mentions it earns. Nobody can promise a position.
Do I still need one H1 per page?
Google says heading order does not matter to it and there is no ideal number of headings. One clear main heading still helps readers, and Google uses the main visible heading as a source for title links.
Should I still add FAQ schema?
No. FAQ rich results stopped showing in Google Search in May 2026. Keep useful questions and answers on the page for readers, but the markup no longer earns a rich result.
- SEO Starter Guide: The Basics, Google Search Central
- Influencing your title links in search results, Google Search Central
- Control your snippets in search results, Google Search Central
- URL structure best practices for Google Search, Google Search Central
- How to specify a canonical URL with rel="canonical" and other methods, Google Search Central
- SEO link best practices for Google, Google Search Central
- Google image SEO best practices, Google Search Central
- Intro to how structured data markup works, Google Search Central
- Structured data markup that Google Search supports, Google Search Central
- Latest documentation updates, Google Search Central
- Understanding page experience in Google Search results, Google Search Central
- Web Vitals, web.dev
- Mobile site and mobile-first indexing best practices, Google Search Central
- Creating helpful, reliable, people-first content, Google Search Central
- Page indexing report, Search Console Help