Tucson Technical SEO Services, Diagnosed and Fixed by One Person
Crawlability, indexation, Core Web Vitals, site architecture and schema — found, prioritized and repaired by the person you hired, not handed to you as a PDF.
In search since 1990. $1,000 a month, no contract.
Key takeaways
- Technical SEO decides eligibility, not merit. Content quality decides whether a page deserves to rank. Crawling, indexing, speed and structure decide whether it is allowed to compete in the first place.
- The Core Web Vitals thresholds have not changed. LCP 2.5 seconds, INP 200 milliseconds, CLS 0.1, measured at the 75th percentile of real Chrome visits over a rolling 28 days. Anyone telling you the 2026 core update moved LCP to 2.0 seconds is repeating something that was never true.
- The March 2026 core update rewarded credibility, not speed. It ran March 27 to April 8 and re-weighted original, first-hand, clearly attributed work. That makes the technical layer that carries your identity — schema, authorship, internal structure — more valuable, not less.
- I fix what I find. I write the HTML, CSS and JSON-LD myself. There is no junior with a crawler licence and no handoff to a developer who has never seen your site.
- Technical work is inside the monthly fee. Nothing on this page is a separate line item. What the $1,000 a month covers is spelled out in full.
Every few weeks someone calls me because their rankings went sideways and nobody can tell them why. They have paid for content. They have a Google Business Profile. Their site looks fine. Then I crawl it, and inside twenty minutes there it is: half the pages are not in Google's index, or the mobile experience takes six seconds to paint, or four URLs are quietly competing for the same keyword.
That layer — the one nobody looks at because it does not show up in a screenshot — is technical SEO. It is where I start with every client, and it is the part of this work I have been doing the longest.
What technical SEO actually covers
Technical SEO is everything that happens between your website and a search engine's infrastructure that a human visitor never sees. Whether Googlebot can reach a page. How fast that page paints on a phone on a Tucson cell network. Whether the structured data tells Google this is a local business rather than a blog post. Whether canonical tags stop four versions of a page from splitting the authority between them. Redirects, XML sitemaps, robots.txt, HTTPS, mobile rendering, and the Core Web Vitals that Google measures from real Chrome users.
Google's own documentation on how Search works lays out the sequence: crawling, then indexing, then serving. Every stage has technical requirements, and every stage is a place a site can silently fall out of the running. A beautiful website built by a designer who has never read that documentation is a house with excellent paint and no plumbing.
I have been working on this layer since before it had a name. I ran two internet marketing companies through the late nineties and early 2000s — Lotus411.com and MSD2D.com, both community sites for enterprise server administrators, both sold. Those sites had thousands of pages that had to stay crawlable and load on the hardware and connections of the day. The tools have changed completely since then. The question has not: can the machine find this, read it, and understand what it is?
Core Web Vitals: the real numbers, and the myth going around
Let me deal with the misinformation first, because it is everywhere right now and this page used to repeat a version of it.
The Core Web Vitals thresholds did not change in 2026. There was a real core update — it was announced on March 27, 2026 and finished rolling out on April 8 — but it was a broad quality recalibration. It rewarded original, first-hand, clearly attributed content and it went hard after thin aggregator pages. It did not move LCP to 2.0 seconds. It did not promote INP to a primary signal, because INP has already been one of the three Core Web Vitals since March 2024, when it replaced First Input Delay.
Here is what is actually true, and you can check every number of it against Google's Web Vitals documentation:
| Metric | What it measures | Good threshold | What usually breaks it |
|---|---|---|---|
| Largest Contentful Paint (LCP) | How long until the main content element paints | 2.5 seconds or less | An oversized hero image, a slow server response, render-blocking CSS or fonts |
| Interaction to Next Paint (INP) | How fast the page responds to a tap, click or keypress | 200 milliseconds or less | JavaScript. Page builder bloat, twenty active plugins, third-party scripts holding the main thread |
| Cumulative Layout Shift (CLS) | How much the layout jumps while loading | 0.1 or less | Images and embeds with no width and height, late-loading fonts, injected banners |
The detail most agencies skip: Google scores these from field data, not lab data. The number that counts comes from the Chrome User Experience Report, at the 75th percentile of real visits, across a rolling 28-day window. A green score in PageSpeed Insights on your laptop means very little. What matters is the fourth-slowest visitor out of five, on a mid-range Android, on a normal connection.
That is also why fixes feel slow. Deploy a real LCP fix today and the field data will not fully reflect it for about four weeks. I tell clients this up front so nobody panics in week two.
In the Tucson sites I have put through CrUX this year, the metric that fails most often is INP, and the cause is almost always the same: a WordPress install carrying more JavaScript than the business needs.
Crawling and indexing: can Google reach the page at all
This is the failure that hides best, because the page looks perfect when you visit it. It exists on your server. It just is not in the index. Nobody notices for a year.
- Robots.txt blocking the wrong things. I have found live sites still carrying the “discourage search engines” setting a developer switched on during staging and never switched off. One checkbox, entire site invisible. Google's robots.txt documentation covers what the directives actually do.
- Orphaned pages. A page with no internal link pointing at it is a page Googlebot has little reason to find or revisit. On most sites I take over, the orphans are service pages someone published and forgot to link.
- Wasted crawl budget. Tag archives, paginated blog listings, attachment pages and filter URLs soaking up crawl attention that should go to the pages that earn money.
- Broken or stale XML sitemaps. The sitemap is the map you hand Google. Plenty of them list 404s and omit everything published in the last two years.
- Conflicting indexing directives. A noindex tag left on a page you want ranked. A canonical tag pointing at a URL that does not exist. A canonical that disagrees with the sitemap, which disagrees with the internal links. Google picks one and it is rarely the one you wanted.
I check indexation on every site I work on, using Google Search Console's Pages report, a full crawl, and hand checks on the URLs that matter most. When a page is not indexed, the job is to find the specific obstruction and remove it — not to note it on a list.
Site architecture and internal linking
Architecture is how your pages are organized and how they link to each other. Done deliberately, it tells Google which pages are the important ones, how your topics relate, and where authority should flow. Left to chance — which is the default — you hand Google a pile of pages and hope it works out.
For a local service business the shape is not complicated. The homepage points at the core service pages. Each service page points down to its sub-services and out to the related services a buyer would reasonably want next. Location pages sit under the services they serve. Supporting articles link up to the service page they support, not sideways into nothing. URLs read like a path a human could follow.
This page is a live example. It sits under Services, it links up to the monthly SEO service that contains it, sideways to the SEO audit that diagnoses it and the website design service that builds on it, and out to case studies that show the result. Nothing here is orphaned, and nothing links out to a page that does not exist.
When I build a site through the design service, the architecture is mapped before a page is designed. When I take over an existing site, restructuring happens in month one, ordered by which changes move rankings soonest.
Schema markup and the entity layer
Schema markup is structured data in your page's HTML that states what the content is, in a format machines read without guessing. Instead of hoping Google works out that a page describes a business in Tucson, the markup says so: this organization, this person, this service, this area served, these questions and answers. Google's structured data documentation and the vocabulary at Schema.org define the format.
Two things make this worth more in 2026 than it was in 2021. First, rich results: FAQ blocks, breadcrumbs and business details take up more room in the SERP and pull more clicks. Second, and increasingly the bigger one, AI assistants and AI Overviews lean on structured data when they decide what a business is and whether to name it in an answer. If your site never states its own identity in machine-readable form, you are relying on a language model to infer it from your copy.
The part almost everyone gets wrong is not whether schema exists but whether it agrees with itself. I inherit sites running four plugins that each emit their own Organization block, with three different phone numbers between them. That is worse than having none, because now Google has to decide which version of you is real.
Every site I work on gets one connected graph: a single Organization, a single Person, a single WebSite, and page-level WebPage, Service, BreadcrumbList and FAQPage nodes that reference those by ID instead of redefining them. The structured data on this page is written and validated by me, not generated by a plugin. View source and read it — that is the standard I hold client sites to, and it is checkable rather than claimed.
Site speed, honestly
Speed is not the most important ranking factor and I am not going to pretend it is. Relevance, content quality and authority outweigh it. Speed is a floor and a tiebreaker.
But local search is mostly tiebreakers. You are not competing with Wikipedia. You are competing with three other contractors in Oro Valley who offer the same service to the same people, and when the other signals are close, the faster site takes the position. Then the visitor arrives, and speed stops being an SEO question and starts being a revenue question.
The fixes that actually move the numbers on a small business site are unglamorous:
- Images. Compress, resize to the slot they occupy, serve WebP or AVIF, set explicit width and height, lazy-load below the fold, and never lazy-load the hero. A full-resolution camera JPEG in a hero slot will fail LCP on its own.
- JavaScript. Audit the plugin list and delete what nobody uses, defer non-critical scripts, break up long tasks. This is the INP fix, and it is usually the difference between passing and failing.
- Server response. Time to First Byte is the floor under everything else. Cheap oversold shared hosting cannot be optimized around from the front end.
- Caching and delivery. Page caching, browser caching, and a CDN so the bytes do not travel further than they need to.
- Render-blocking resources. Defer or inline what stands between the request and the first paint, so the visible part of the page arrives first.
The problems I find most often on Tucson sites
After enough audits the same list keeps coming back, roughly in this order:
- No structured data at all, or several plugins emitting contradictory versions of it.
- Uncompressed images dropped in at camera resolution by a designer who was not thinking about a phone.
- Plugin sprawl — twenty to forty active plugins, each adding scripts, styles and queries to every page view.
- Redirect chains accumulated over years of URL changes, each hop adding latency and burning crawl budget.
- Canonical conflicts, where the canonical tag, the sitemap and the internal links each nominate a different URL.
- Stale XML sitemaps listing dead pages and missing live ones.
- Mixed HTTP and HTTPS references left behind after an SSL migration.
- Duplicate or boilerplate title tags and meta descriptions across half the site, so nothing distinguishes one page from another.
- Stale business details in the code — an old phone number in a schema block, a previous address in the footer, a legacy domain in a meta tag. Google reads all of it, and inconsistency costs trust.
Almost every one of these is fixable in a single working session. The expense is never the repair. It is the eighteen months of suppressed rankings that ran while nobody looked.
How the work runs
Month one: full technical audit
A complete crawl, Search Console review, CrUX field data, schema validation, mobile rendering checks and an indexation reconciliation. Everything found is written down with a priority and a reason. Then the fixing starts, in the same month.
Blockers first
Crawl blocks, indexation failures and Core Web Vitals failures go first, because they suppress the value of everything else you are paying for. Cosmetic warnings from a crawler wait, or get ignored on purpose.
The entity graph
One Organization, one Person, one WebSite, with page-level nodes referencing them by ID. Duplicate and contradictory blocks from plugins get removed rather than added to. Validated before it goes live.
Speed work
Images, JavaScript, caching, hosting assessment. The target is passing all three Core Web Vitals in field data, not a green number in a lab test that nobody is ranked on.
Architecture and internal links
Orphans adopted, hierarchy aligned to the keyword map, authority routed to the pages that earn money. This is what makes the monthly content compound instead of just accumulating.
Monthly monitoring
Crawl health, index coverage, Core Web Vitals and new errors, checked every month. Sites break quietly. The point of monitoring is to catch it in week two rather than month nine.
Technical SEO compared with on-page SEO
| Technical SEO | On-page SEO | |
|---|---|---|
| What it covers | Crawling, indexing, speed, Core Web Vitals, rendering, redirects, sitemaps, canonicals, HTTPS, structured data | Title tags, meta descriptions, headings, copy, search intent, internal links, image alt text |
| Who it is for | Crawlers and the browser engine. Invisible to visitors | Visitors first, crawlers second. Visible on the page |
| What it decides | Whether a page is eligible to rank | Whether a page deserves to rank |
| Failure symptom | Rankings suppressed silently, often with no visible sign on the site | Pages get indexed but never rank, because they answer the wrong question |
| How I handle it | Audit, fix, implement the schema graph, optimize speed, monitor monthly | Intent-mapped pages, internal linking, title and meta work, published monthly |
You need both, which is why both are in the same monthly service. A technically flawless site with nothing worth reading ranks for nothing. Excellent writing on a site Google cannot crawl never gets the chance.
Who does this work
I am David Cragg. I have worked in search since 1990. I built and sold two internet marketing companies, Lotus411.com and MSD2D.com, before founding Temecula SEO in 2007 and moving the practice to Tucson in 2022.
I hold an economics degree from UCLA and an MBA from the University of Washington, which matters less than this: I write the code. When your site has a technical problem, the person diagnosing it and the person fixing it are the same person, and you can call him. More about my background.
There is no account manager, no junior running a crawler and forwarding the output, and nobody learning on your site. A tool will report two hundred issues. My job is telling you which eight are costing you rankings, and fixing those this week.
Where technical SEO fits with everything else
Tucson SEO services
The monthly engagement this work belongs to. Technical, content and local search under one fee.
SEO audit
The diagnosis. What is checked, what you receive, and what happens with the findings.
Website design
When a site is past repairing, building it correctly is cheaper than fixing it forever.
Content creation
The pages the technical layer makes eligible, and how they get researched and written.
Reputation management
Reviews and the profile signals that sit alongside your website in local results.
Pricing and how I work
What $1,000 a month includes, what it does not, and why there is no contract.
Find out what is actually wrong with your site
Call me and I will crawl your site while we talk, pull your Core Web Vitals field data, and tell you what is holding you back in plain language. No pitch deck, no obligation, and I answer my own phone.
Questions about technical SEO
What is technical SEO?
Technical SEO is the work that lets a search engine find, crawl, render, index and understand a website. It covers crawlability, indexation, site speed and Core Web Vitals, mobile rendering, site architecture, internal linking, XML sitemaps, robots.txt, canonical tags, redirects, HTTPS and structured data. None of it is visible to a visitor. All of it decides whether the pages you paid to have written are eligible to rank at all.
What are Core Web Vitals, and what are the current thresholds?
Core Web Vitals are three metrics Google uses to score real-user experience. Largest Contentful Paint (LCP) measures loading and should be 2.5 seconds or less. Interaction to Next Paint (INP) measures responsiveness and should be 200 milliseconds or less. Cumulative Layout Shift (CLS) measures visual stability and should be 0.1 or less. Google grades each one at the 75th percentile of real Chrome visits across a rolling 28-day window, using field data from the Chrome User Experience Report rather than a lab score from a testing tool.
Did Google change the Core Web Vitals thresholds in 2026?
No. As of August 2026 the thresholds are unchanged: LCP 2.5 seconds, INP 200 milliseconds, CLS 0.1. The March 2026 core update was a broad quality recalibration that ran from March 27 to April 8, 2026, and it rewarded original, first-hand, clearly attributed content. It did not touch the Core Web Vitals numbers. The last structural change was in March 2024, when INP replaced First Input Delay. If a page tells you LCP now has to beat 2.0 seconds, that page is wrong, and it is worth doubting everything else on it.
How do I know whether my site has a technical SEO problem?
Start in Google Search Console. The Pages report shows what Google has indexed and what it has refused to index, and the Core Web Vitals report shows what real visitors experience. Those two reports catch most of it. They do not catch redirect chains, canonical conflicts, orphaned pages, duplicate title tags, missing structured data or a weak internal link structure, which need a full crawl and someone reading the HTML. The common symptom is rankings that sit flat while you keep publishing.
What is schema markup, and does my site need it?
Schema markup is structured data added to a page, usually as JSON-LD, that states plainly what the page is: a local business, a service, a person, a set of questions, a breadcrumb trail. Google uses it to understand entities and to build rich results, and AI assistants lean on it when they summarize a business. Most small business sites in Tucson have none at all. Every site I work on gets Organization or LocalBusiness, Person, WebSite, WebPage, Service, BreadcrumbList and FAQPage as one connected graph rather than a pile of disconnected blocks.
Can technical problems hold rankings back even when the content is good?
Yes, and it is the most common version of the problem I get called about. The pattern is a business that has paid for content for a year and watched rankings stay flat. The writing is usually fine. Google is indexing only part of the site, or the mobile experience fails Core Web Vitals, or three URL variations of the same page are splitting authority between them, or the internal linking gives Google no reason to treat the money pages as important. Content cannot outrun a broken foundation.
Do you fix the technical problems, or just report them?
I fix them. Anything inside the site is mine to handle directly: image and speed work, schema, redirect cleanup, sitemap and canonical corrections, internal link restructuring, template and theme changes. I write the HTML, CSS and JSON-LD myself, so there is no handoff and no waiting on a developer. If a fix has to happen at the server or DNS level, I write the exact request for your host and then verify their work. You do not get a 200-item PDF and an invoice for finding the problems.
How often does technical SEO need to be checked?
Monthly, at minimum. A website is a moving system. A plugin updates, a theme changes, someone publishes a page with no internal links pointing at it, an image goes up at full camera resolution, a host migrates a server. Any one of those can create a crawl error, an indexation gap or a Core Web Vitals failure that nobody notices. Because Core Web Vitals are scored on a rolling 28-day window of real visits, a regression can take a month to appear and another month to clear after the fix lands.
What is the difference between technical SEO and on-page SEO?
On-page SEO is about what a page says: the title tag, the headings, the copy, the search intent it answers, the internal links it carries. Technical SEO is about whether Google can reach that page, load it quickly, render it correctly and understand its structure. On-page work decides whether a page deserves to rank. Technical work decides whether it is eligible to. Both belong in one monthly service, because splitting them into separate invoices helps the agency, not the site.
Tucson SEO — David Cragg, Tucson SEO consultant
Tucson, Arizona. Serving Tucson, Oro Valley, Marana, Catalina Foothills, Sahuarita, Green Valley, Vail and Southern Arizona.
(520) 207-6000 • $1,000 a month, no contract
Written by David Cragg. Last reviewed August 14, 2026. Core Web Vitals thresholds and core update dates on this page are cited to Google's own documentation and can be verified at the links above.




