On-Page SEO Checklist, Run in Twenty Minutes
A one-page SEO checklist with the number that passes each check, in the order to fix them. Run it on your most important page this afternoon.

Most SEO advice is written for a site you have not built yet. This one is for the page you already have.
An on-page SEO checklist is the short list of things on one page that a search engine reads: the title, the description, the headings, the links going out and coming in, the images, and the markup underneath. Run it on one page, in order, and you finish with a fix list you can start the same afternoon. The first pass takes about twenty minutes if the page is open in front of you.
The checklists ranking for this query were written at different times, and they disagree. Woorank's 20-point list is dated April 10, 2020, and it still says a title should stay within 70 characters. Semrush's list, dated April 23, 2026, says under 60. Both come from people who know the work. A reader with a title to fix tonight cannot settle the difference by reading harder.
So this post picks. Each check gives the number that passes it, names the source behind that number, and says where to find the thing on your page. Where two sources disagree, the post says which one it trusts and why.
Check the title first, because it is the one people read
The title tag is the line a searcher reads before deciding to click. Semrush says to keep it under 60 characters so it is not truncated in results, and to put the primary keyword near the start. Woorank's 70 is older, and it calls the limit optional, for usability. We trust the 60. It is the newer figure, and the cut is what the searcher actually sees.
The procedure takes a minute. Open the title field in your CMS, or read the title element in the page source. Paste the title into any character counter. Then look at where the words your page is about first appear.
Take a title like "On-Page SEO Checklist: Every Step for Your Small Business Site". It counts 62 characters. The last word gets cut in the result, and the searcher never sees the word that says who the page is for.
The fix is one edit. "On-Page SEO Checklist for Small Business Sites" is 46 characters, the term sits at the front, and nothing gets cut.
The failure to watch for is a brand name in front of the term. Your company name at the start pushes the words that matter most to the back of the line. Semrush and Woorank both say to put the keyword near the start. Put the brand last, or leave it out of the title if the site name already sits in the header.
Write the description to the length the result shows
The meta description is the snippet under the title. Semrush says Google does not use it as a direct ranking factor, but a clear one can raise the click-through rate, and it puts the limit at about 105 characters so the snippet is not cut. Woorank says 150. The two numbers differ because the room a snippet gets changes with the device and the query, so neither figure is a law. We trust Semrush's number because it is dated, and because you can check it in a minute.
Do the check yourself. Search your exact title in Google, find your page, and read the snippet. If the sentence stops in the middle, the description is too long for that result. Semrush's on-page checker flags the case where Google rewrites the description, and that case usually means your text did not answer the query closely enough.

Write the first sentence so it does its work inside the first 105 characters: the term, then the thing the reader gets. For example, "A one-page SEO checklist with the number that passes each check, in the order to fix them." That line is 90 characters, carries the term, and promises something a reader can check against the page.
The failure here is a description that repeats the title with a full stop added. The searcher has already read the title. The description is the only other line they see, so it has to say something the title did not.
Give the page one H1 that matches the title's promise
Semrush says every page should have one H1, and that it should describe the page in words close to the title. Woorank says a page must have two H1 tags. We trust Semrush on this. Google's starter guide asks for headings that help readers find their way through a page, and it does not ask for a second H1.
The procedure is to count the H1 tags on the rendered page, not only in your text. A theme often adds one, and the title you typed into the body adds another. Keep one. Then read the H2s in order. Each should name a question its section answers, so someone scanning the page can tell what each part gives them without reading it.
Here is a worked example. A page has two H1s: "On-Page SEO Checklist" from the theme, and "Our Checklist Guide" typed into the body. Delete the second. Move its one useful phrase into the first H2, which becomes "What the checklist checks, in order." The page now has one H1 that matches the title, and an H2 a scanner can use.
The failure is an H1 that says something clever instead of the topic. "Your Site Deserves Better" gives a search engine nothing to file the page under, and it gives the searcher nothing to click for.
Link out to two sources and in to three posts
Links do two jobs on a page. They tell the reader where to go next, and they show a search engine what the page is connected to. Google's starter guide says to link to relevant resources, to write link text that says what the target contains, and to be sure you trust a page before you link to it. Semrush adds that a post should link to your own related posts where they fit.
Open the page and count the links going out and the links going to your own site. Then check them against this table.
| Check | Passes when | Where to look |
|---|---|---|
| Internal links | Three to five to related pages on your own site | The body text, not the footer or the sidebar |
| Outbound links | Each goes to a source you have read, with the date of the figure in the sentence | Every number on the page |
| Anchor text | Says what the target holds, never "click here" | The link words in each paragraph |
| Category link | One link to the category page | The body text |
Pick three pages on your own site that answer the next question a reader will have. The ones this post points at are local SEO for small business, small business SEO, in the right order and a 90-day SEO plan for startups. Add the category page once, as the SEO posts, and stop there.

Anchor text is where most pages lose this check. Before: "For more, click here." After: "Read small business SEO, in the right order for the sequence." The reader cannot tell what "click here" holds, and neither can a search engine. The anchor should carry the topic of the page it points to.
The failure to avoid is an outbound link to a page you have not read. Google's guide says that if you cannot trust a resource but still want to link to it, you add a nofollow or similar annotation, so you are not vouching for it. The simpler rule is to read the page first, and to check the date of the figure you are quoting before the link goes live.
Name every image and write its alt text from the frame
Semrush says to add alt text to every meaningful image, to place each image beside the text it supports, and to compress the file so the page loads quickly. Woorank says alt text and file names can carry the page's keywords. Both sources agree on the reason that matters most: a screen reader reads alt text aloud, so it has to describe the picture.
The procedure has four steps, per image.
- Rename the file from the camera's name to words that describe the frame, hyphenated: "checklist-page-drafting-table.webp", not "IMG_4471.webp".
- Write the alt text as one plain sentence describing what is in the frame. The sentence describes the picture. It does not repeat the keyword or the title.
- Check that the image sits next to the paragraph it supports, on its own line, and not inside a list.
- Compress the file. Semrush points to TinyPNG for this, and any compressor does the same job.
A worked example. A screenshot of a dashboard gets the alt text "A laptop open on a desk, with a dashboard of green bars on the screen." Compare "SEO checklist, checklist SEO, best checklist". The second version repeats the term and describes nothing, so a screen reader reads a list of words to a person who cannot see the page.
Screenshots and annotated images beat stock photos for this job. Semrush's guidance is that original graphics add more value than stock, and a reader learns more from a real screen than from a handshake. If the page is about a tool, the screenshot of the tool with the field you are fixing circled is worth more than any picture of a laptop.
Check the URL and the markup before you ask Google anything
The URL should read as words. Google's starter guide recommends descriptive URLs that include words a user would find useful, and it contrasts them with a string of random identifiers. Semrush adds one rule: leave the year out. A page at /on-page-seo-checklist-2026 looks finished in 2026 and out of date in 2027. Changing it later means a redirect from the old address to the new one, which Semrush says to set up whenever a slug changes.
Schema is the next check. Semrush says Article markup suits a blog post, and it calls schema one of the more advanced items on its list. The procedure has three steps. Check whether your CMS already adds Article markup to posts. If it does not, ask whoever maintains the template to add it. Then test the live page with a rich results test, and read the errors line by line, not only the pass or fail at the top.
A worked example: a post whose markup names a headline but no author has a gap that is easy to miss, because the page looks fine to the eye. The reader sees a title and a byline and never sees the missing field. The test catches it in ten seconds, which is why it belongs in the pass and not in a later audit.
Ask Search Console whether Google can see the page
Google's starter guide says to check how Google sees a page with the URL Inspection Tool in Search Console. It also says a change can take a few hours or several months to show, and advises waiting a few weeks before you judge the result. So the last pass is a question, not a score: can Google fetch the page the way a user does?
The procedure has four steps.
- Open Search Console and paste the page's address into the URL Inspection box.
- Read whether the page is indexed. If it is not, read the reason the tool gives.
- Open the rendered view. If text the browser shows is missing from it, a script or a hidden element is in the way. Fix that before anything else on this list.
- Request indexing once, after the fixes, and not again until the page changes.
Then put a date four weeks out in the calendar. On that day, compare the page's impressions and average position for the term in Search Console against the figures on the day you made the changes. Without that date and those figures, you cannot tell a fix from a coincidence, and you will be tempted to call the next guess a result.
The on-page SEO checklist, in the order to run it
Run the list in this order, and stop at any check that fails until it passes.
- Title: under 60 characters, the term at the front, and no brand in front of it.
- Description: under about 105 characters, the term and the promise in its opening words, and the live snippet checked in a search.
- H1: one on the rendered page, naming the topic in words close to the title.
- Answer first: the first sentence under each H2 answers its heading. If it is background, move the answer up and push the background down.
- Links: three to five to your own related posts, one to the category, and outbound links only to sources you have read, dated, with descriptive anchors.
- Images: renamed, alt text as one sentence, compressed, and beside the paragraph they support.
- URL and markup: words in the address, no year, Article markup on posts, and the rich results test read line by line.
- Search Console: the URL inspected, the rendered page checked, indexing requested once, and the recheck dated four weeks out.
The order is the point. The first three steps are what a searcher sees before they click, so they come first. The rest waits until the page is worth the click. Open the page now, copy its title into a character counter, and fix the first line that fails.