On-Site SEO Checklist: Every Task That Moves Rankings

A prioritized on-site SEO checklist covering title tags, Core Web Vitals, schema, and local signals. Built for small business owners who need real results.

On-site SEO covers every change you make on your own pages: title tags, headers, URL structure, Core Web Vitals, schema markup, and internal links. Fix crawl errors and page speed first; they block every other gain.


What On-Site SEO Actually Covers (and What It Does Not)

On-site SEO is every optimization you control directly on your own domain. That means your HTML, your content, your page structure, and your server configuration. It does not mean backlinks, citations, or social media outreach. Those are off-page signals.

Ranking guides frequently mix the two, which sends people chasing backlinks before their pages are even crawlable. The checklist below stays onsite. Off-page work matters, but it cannot compensate for broken on-site fundamentals.

The tasks below are organized by priority: site-level technical issues first, then page-level elements, then content depth, then local signals. A small business owner in Phoenix working through this in order will see the highest return on the earliest tasks.


Part 1: Site-Level Technical Tasks (Fix These First)

These items affect every page on your site. One broken setting here defeats optimizations made individually on dozens of pages.

1
Confirm HTTPS is active sitewide. Open Google Search Console, go to the Coverage report, and check that your verified property uses https://. Any page still serving on http:// risks a browser “Not Secure” warning that depresses click-through rate before SEO even enters the picture.
2
Set and enforce a canonical URL pattern. Decide whether your domain uses www or non-www, and whether pages end with a trailing slash or not. Redirect all variants to one canonical form in your .htaccess file or server config. Mixed versions create duplicate-content dilution that quietly splits link equity without triggering any visible error.
3
Audit robots.txt and verify Googlebot is not blocked. Paste your domain followed by /robots.txt into a browser. If you see “Disallow: /” that means your entire site is blocked from crawling. Use Google Search Console’s robots.txt tester to confirm crawlers can reach your key pages.
4
Submit an XML sitemap. Generate a sitemap through Yoast, Rank Math, or your CMS, then submit it under Index > Sitemaps in Search Console. Check the “Discovered URLs” count. If it is much lower than your real page count, you likely have indexing or internal-link gaps.
5
Clear crawl errors. In Search Console, open the Pages report. Any page listed under “Not found (404)” or “Redirect error” wastes crawl budget and breaks internal links. Fix legitimate 404s with 301 redirects to the most relevant live page. Remove broken URLs from your sitemap.
6
Pass Core Web Vitals. Run your homepage and your top landing pages through PageSpeed Insights (pagespeed.web.dev). You need three specific scores in the green range: Largest Contentful Paint (LCP) under 2.5 seconds, Cumulative Layout Shift (CLS) under 0.1, and Interaction to Next Paint (INP) under 200 milliseconds. Common fixes include compressing images to WebP format, enabling lazy loading, and removing render-blocking JavaScript.
7
Confirm mobile-friendliness. Google indexes the mobile version of your site first. Use Search Console’s Mobile Usability report to flag tap-target issues, font-size warnings, and viewport misconfigurations. A page that looks fine on desktop can still fail mobile indexing if your theme is not truly responsive.
2.5s
LCP target (Largest Contentful Paint)
0.1
CLS threshold (Cumulative Layout Shift)
200ms
INP target (Interaction to Next Paint)
60 char
Max title tag length before truncation

Pro Tip: Run Screaming Frog (free up to 500 URLs) on your site before touching any individual page. Export the crawl, filter for duplicate title tags and missing H1s, and you will have a triage list in about 10 minutes without clicking through every page manually.


Part 2: Page-Level Onsite Elements

Once the site-level foundation is solid, work through these items on every page that targets a keyword you care about.

Title Tags
Write one title tag per page. Keep it under 60 characters so it does not truncate in search results. Put the target keyword near the front, and add a location modifier for local searches (for example, “Plumber in Phoenix AZ” rather than “Our Plumbing Services”). Check the current title for every important page with Screaming Frog or the browser plugin “SEO Meta in 1 Click.”

Meta Descriptions
Meta descriptions do not directly influence rankings, but they control whether someone clicks. Keep them under 155 characters. Include the target keyword naturally because Google bolds it in results when it matches the query. Write one sentence of what the page delivers, then one sentence that creates urgency or names a benefit. Avoid duplicating the same description across multiple pages; Search Console will flag this under Enhancements.

H1 Tags
Each page must have exactly one H1. It should contain the primary keyword and match the intent of the page. If your page targets “roofing repair Phoenix,” the H1 should say something close to that phrase, not “Welcome to Our Site.” Use Screaming Frog to export a list of pages with missing or duplicate H1s; this is one of the most common common small business website mistakes that costs rankings without any obvious symptom.

Header Hierarchy (H2 to H4)
Use H2 headings for major sections, H3 for subsections within those sections, and H4 sparingly for nested detail. Do not skip levels. Search engines use heading structure to understand topic relationships on the page, and assistive technologies depend on it for accessibility. Include secondary keywords and related phrases in H2s naturally, not as a list of stuffed terms.

URL Structure
URLs should be short, lowercase, hyphen-separated, and descriptive. A URL like /phoenix-roof-repair/ outperforms /page?id=47 in both rankings and click-through rate. Remove stop words where they add no meaning. Never change a URL that already has backlinks or traffic without setting a 301 redirect to the new version.

Canonical Tags
If you have pages with very similar content, for example a service page and a slightly different version for a different suburb, add a canonical tag on the secondary page pointing to the primary one. This consolidates ranking signals rather than splitting them. In WordPress, Yoast and Rank Math both manage canonical tags under the Advanced tab of each page editor.

Duplicate and Thin Content
Pages with fewer than roughly 300 words and no unique value are considered thin content by Google’s quality systems. Audit your site for service pages that say almost nothing, privacy policy duplicates, or tag archive pages that surface the same posts repeatedly. Either improve them with real content, consolidate them into one better page, or set them to noindex if they genuinely add no search value.

Key insight
Canonical tags and URL canonicalization are the most underused items on any onsite checklist. Duplicate content dilution is quiet: it does not throw an error, it just suppresses every affected page’s ranking potential until you consolidate the signals.

Part 3: Image Optimization

Images are often the single largest contributor to a slow LCP score, especially on Phoenix service-business sites that use a lot of hero photography.

File Format and Size
Convert JPG and PNG files to WebP format before uploading. WebP files are typically 25 to 35 percent smaller at equivalent quality. Aim to keep any image above the fold under 100 KB and full-page images under 200 KB. Tools like Squoosh (free, browser-based) handle this in seconds.

Alt Text
Every image needs descriptive alt text that explains what the image shows. For a before-and-after photo on an HVAC service page, alt text like “HVAC unit replacement in Scottsdale AZ before and after” is far better than “image1.jpg.” Alt text is read by screen readers and indexed by Google Images; for local businesses, it is another surface to reinforce geographic relevance.

File Names
Rename image files before uploading. “DSC_00492.jpg” contributes nothing. “commercial-hvac-installation-phoenix.jpg” does. This takes 5 seconds per image and adds a low-effort keyword signal that most competitors skip.

Lazy Loading
Add loading=”lazy” to any image that appears below the fold. This tells browsers to defer loading those images until the user scrolls toward them, which improves initial LCP without removing any visual content.

Pro Tip: In WordPress, the native block editor adds lazy loading automatically to non-featured images since version 5.5. The featured image (hero) should NOT be lazy-loaded because it is above the fold and Google measures it as part of LCP. Check your theme’s featured-image output in the source code to confirm it does not have lazy loading applied.


Part 4: Content Optimization

“Write high-quality content” is not actionable. Here is what that actually means in practice.

Keyword Placement
The target keyword should appear in the first 100 words of the page body, in at least one H2, and naturally throughout the content at a density that reads well rather than a specific percentage target. Forcing a phrase in every other sentence hurts readability and triggers quality filters.

Semantic Keywords and Related Terms
Google’s understanding of topics goes well beyond exact-match keywords. Use the terms a subject-matter expert would naturally use. For a page about Phoenix landscaping, you would expect words like xeriscape, desert plants, drip irrigation, and monsoon season to appear organically. Google’s “People also ask” boxes and Semrush’s Keyword Magic tool both surface related terms efficiently.

Content Length
There is no universal ideal length. A page answering one specific local question may rank at 400 words. A comprehensive guide competing against national sites may need 1,500 to 2,500 words to demonstrate enough topical depth. Match the length to what the query actually requires, not to a word-count target for its own sake.

E-E-A-T Signals
Google’s quality rater guidelines evaluate Experience, Expertise, Authoritativeness, and Trustworthiness. For a local Phoenix business, this means: cite your license number or certifications on service pages, show a physical address, include an author bio on blog posts with real credentials, and link to third-party sources when you state a claim. These signals matter more on pages about health, finance, legal, or home-safety topics.

Featured Snippet Optimization
If a query has a featured snippet (the box at position zero), structure your answer to match the format Google is already rewarding. A question-and-answer format with a direct 40 to 50 word answer immediately after an H2 phrased as a question is the structure most likely to earn the snippet. FAQ schema reinforces this further.

Content Freshness
Google’s systems give freshness signals more weight in categories where information changes frequently: pricing, regulations, product availability, local hours. Review your highest-traffic pages at least once a year. Update statistics, check that all internal links still resolve, and add a “last updated” date in a visible location where it is genuinely accurate.


Part 5: Internal Linking

Internal links are how you distribute authority across your site and help Google understand which pages are most important. Most small business sites severely underuse them.

Every new page you publish should receive at least 2 to 3 contextual internal links from other relevant pages that already exist. Use descriptive anchor text that includes keywords relevant to the destination page, not “click here” or “learn more.” A plumbing company in Phoenix might link from their main services page to individual service pages using anchors like “drain cleaning in Phoenix” or “emergency pipe repair.”

Also review your navigation. Pages that appear in the main menu receive a link from every other page on the site. If a category is important for rankings, it deserves a spot in the navigation or at least in a site-wide footer. Check your site’s internal link structure with Screaming Frog by filtering for pages with fewer than 2 inbound internal links; these are often your most under-supported pages.

For more structured advice on this topic, see our guide on local SEO tips for service businesses which covers how internal linking fits into a broader local strategy.


Part 6: Schema Markup

Schema markup is structured data you add to your HTML that tells search engines what your content means, not just what it says. It does not directly raise rankings, but it increases click-through rate by enabling rich results.

Schema Type Who Needs It What It Enables
LocalBusiness Every brick-and-mortar or service-area business Name, address, phone, hours in Knowledge Panel
FAQ Any page with question-and-answer content Expandable questions under your listing in search
Review / AggregateRating Businesses with review data Star ratings visible in search results
Service Service-area businesses Structured service descriptions Google can parse
BreadcrumbList Multi-page sites with clear hierarchies Breadcrumb path shown in the search result URL

For a Phoenix-area service business, LocalBusiness schema and FAQ schema are the two highest-return items. Both can be generated free at Schema.org or through Rank Math’s schema module in WordPress. Validate any schema you add with Google’s Rich Results Test (search.google.com/test/rich-results) before publishing.


Part 7: Local Onsite Signals

Local SEO does not live only on Google Business Profile. Your website itself sends geographic and relevance signals that affect local pack rankings and organic local results.

Include your full business name, address, and phone number (NAP) in consistent text format on your site, typically in the footer and on a dedicated Contact page. Make sure this information matches exactly what appears in your Google Business Profile optimization listing. Inconsistencies between the two suppress local rankings in ways that are difficult to trace.

Create location-specific service pages if you serve multiple neighborhoods or suburbs in the Phoenix metro area. A page targeting “HVAC repair Chandler AZ” and a separate one targeting “HVAC repair Gilbert AZ” each give Google a specific geographic target, rather than one vague page trying to rank for the entire valley.

Embed a Google Map on your Contact page using the embed code from Google Maps rather than an image. This is a lightweight local relevance signal that costs nothing to add.

Pro Tip: In the structured data for your LocalBusiness schema, include the “areaServed” property with the specific cities or ZIP codes you cover in the Phoenix metro area. This is not a guaranteed ranking factor, but it gives Google explicit context about your service area that a phone number and address alone do not convey.


Onsite SEO Checklist: Priority Reference

Task Priority Tool to Verify
HTTPS enforced sitewide Critical Search Console, browser
Crawl errors resolved Critical Search Console Pages report
Core Web Vitals (LCP, CLS, INP) passing Critical PageSpeed Insights
XML sitemap submitted High Search Console Sitemaps
robots.txt not blocking crawlers Critical robots.txt tester in Search Console
Canonical tags set High Screaming Frog, browser source
One H1 per page with keyword High Screaming Frog
Title tags under 60 characters High Screaming Frog, Yoast
Meta descriptions under 155 characters Medium Screaming Frog
URL structure clean and keyword-rich High Manual review
Images in WebP, alt text added High PageSpeed Insights, manual
Internal links (2 to 3 per new page) High Screaming Frog
LocalBusiness schema added High Rich Results Test
FAQ schema on applicable pages Medium Rich Results Test
NAP consistent across site and GBP High Manual + GBP comparison
Thin content removed or improved Medium Screaming Frog content audit
Mobile usability passing Critical Search Console Mobile report

Frequently Asked Questions

What is on-site SEO and how is it different from off-page SEO?
On-site SEO covers every optimization you make within your own website: title tags, content, URL structure, internal links, page speed, and schema. Off-page SEO refers to signals outside your site, primarily backlinks and citations. Backlink audits and outreach are off-page tasks, not onsite ones.

What should I fix first on my on-site SEO checklist?
Start with crawl errors in Google Search Console and Core Web Vitals scores in PageSpeed Insights. If Google cannot crawl your pages or they load slowly, no other optimization will reach its full potential.

How long does on-site SEO take to show results?
Technical fixes like removing crawl errors can produce visible changes in 2 to 6 weeks. Content and keyword optimizations typically take 2 to 4 months to show meaningful ranking movement for a local business.

Do I need schema markup if I am a small local business?
Yes. LocalBusiness schema tells Google your name, address, phone number, and hours in a structured format. FAQ schema can earn rich-result space in search without any ranking change. Both are free to implement and have a high return for the effort.

What tools do I need to complete an on-site SEO checklist?
Google Search Console and PageSpeed Insights are free and cover most auditing needs. Screaming Frog (free up to 500 URLs) finds crawl issues and duplicate tags. Yoast or Rank Math handles on-page guidance inside WordPress. Ahrefs or Semrush add keyword data if you have the budget.

How often should I run through an on-site SEO checklist?
Run the full checklist whenever you launch a new page or redesign a section. Do a lighter monthly review of Core Web Vitals, crawl errors, and any pages that dropped in clicks. A full site audit every 6 months is a reasonable baseline for most small businesses.

If you are evaluating the broader investment, our breakdown of how much does SEO cost for a small business covers realistic ranges and what different service levels include. And if you want to see what DIY on-site work looks like in practice, our how to do local SEO yourself guide walks through it step by step.


What We See Running Campaigns

When we audit new client sites in the Phoenix area, the single most common blocking issue is not missing keywords or thin content. It is pages that were accidentally set to “noindex” during a site redesign and never turned back on. We have seen local contractors in Tempe and Mesa running paid ads to pages that Google was not allowed to index, spending money on traffic that could never compound into organic rankings. A 10-minute Screaming Frog crawl filtered for “noindex” tags would have caught it before a dollar was spent.

The second pattern we see consistently: service-area businesses have a strong homepage but zero internal links pointing to their individual service pages. The homepage accumulates authority from GBP clicks, mentions, and some backlinks, but that authority sits there unused because nothing on the site passes it forward. Adding 3 to 5 contextual internal links from the homepage to specific service pages is often the single change that moves a stalled service page from position 14 to page one within a normal ranking cycle.

DMD Digital

Share the Post:

Related Posts

Call Now Button