Google Was Only Indexing 28 of Our 400+ Pages. A Single DNS Setting Was the Cause.

By Josh Darville7 min readTech Talk
Aerial view of Scarborough House wedding venue in Stantonsburg NC, a historic estate near Raleigh

We pulled up Google Search Console and saw a number that stopped us cold.

28 pages indexed.

Our site had over 400 pages. Thousands of photos. Blog posts going back over a year. Vendor profiles for 75+ local wedding professionals. Google knew about all of it. It just was not indexing most of it.

The breakdown in GSC made it look even worse:

We had been publishing new content, optimizing pages, building internal links. All of it was essentially invisible to Google. And the worst part was that nothing looked wrong from the outside.

The Problem Was Completely Invisible in a Browser

When you visit scarboroughhouse.com in Chrome or Safari, the experience is seamless. You type the address, you land on the site, everything loads. No error messages. No warnings. No broken redirects you can see.

That is exactly what makes this class of problem so dangerous. The bug was not in the content, the design, or the server code. It was one level deeper, in the infrastructure layer that handles how your domain name resolves to your website.

To find it, we had to pull the raw HTTP response headers directly.

curl -I http://scarboroughhouse.com

That command tells you exactly what a server returns before it sends any page content. And in that output, buried in a line most people would scroll past, was the problem:

Location: https://scarboroughhouse.com:443/

Notice the :443 at the end of the URL.

Port 443 is the default port for HTTPS. It is so standard that it is normally invisible. When you type https://scarboroughhouse.com, your browser is connecting to port 443 whether it says so or not. Browsers are smart enough to strip that out and show you a clean URL.

Google's crawler is not as forgiving.

How Google Reads a Redirect URL

Outdoor wedding ceremony seating on the lawn at Scarborough House
Outdoor wedding ceremony seating on the lawn at Scarborough House

When Google's crawler follows a redirect, it reads the Location header literally. To Google, these are two completely different URLs:

Same content. Same server. Same everything from a human perspective. But Google's indexing system treats them as separate addresses.

What happens when Google finds the same content at two different URLs? It has to pick one as the canonical version and either hold or discard the other. While it is sorting that out, it stops indexing. It puts pages in a "discovered, not indexed" queue. It waits.

That queue had 302 of our pages sitting in it.

We had been running this way for long enough that Google built up a significant backlog of pages it had found through our sitemap and internal links, but refused to commit to indexing because the redirect was telling it two different canonical addresses for the root domain.

Why This Happened: Cloudflare Proxy Mode

We use Cloudflare for DNS and security. Cloudflare is excellent and we recommend it for any venue managing their own domain. But it has a configuration detail that is easy to miss.

In Cloudflare's DNS panel, every record has two states:

Our www subdomain record was set to proxied. That is why www.scarboroughhouse.com redirected cleanly, every time, with a perfect Location: https://scarboroughhouse.com/ header.

Our apex domain record (the root scarboroughhouse.com, no www) was set to DNS only. So when a browser or Google requested http://scarboroughhouse.com, that request went straight to our hosting server, bypassing Cloudflare entirely. And our hosting server, when it generated the HTTPS redirect, included the explicit port number in the URL.

One orange cloud versus grey cloud toggle on one DNS record. That was the entire root cause.

The Fix Took About Ten Minutes

Lawn wedding ceremony with the white estate house at Scarborough House
Lawn wedding ceremony with the white estate house at Scarborough House

Once we knew what to look for, the fix was straightforward: flip the apex A record from grey cloud to orange cloud in Cloudflare. One API call, confirmed within seconds.

After that change:

  1. All HTTP requests to scarboroughhouse.com now route through Cloudflare
  2. Cloudflare's "Always Use HTTPS" rule (which was already enabled) generates the redirect
  3. The redirect goes to https://scarboroughhouse.com/ with no port number appended
  4. Google sees a single canonical URL for our root domain

We confirmed it immediately by running the same curl command again. Clean redirect, no port, every time.

What We Found While We Were Digging

A DNS audit tends to surface more than just one issue. While we had the records open, we found two more problems that were not causing the indexing issue but were creating risk elsewhere.

DMARC was set to "none"

DMARC is a DNS record that tells email servers what to do with messages that claim to come from your domain but fail authentication checks. Our record existed, but it was set to p=none, which means: do nothing, just report.

In practice, p=none means anyone could send a spoofed email appearing to come from @scarboroughhouse.com and most email providers would deliver it. We updated this to p=quarantine, which routes unauthenticated messages to spam instead of inboxes. The next step would be p=reject once we have confirmed all our legitimate sending sources are authenticated.

Our SPF record was missing two major email services

SPF (Sender Policy Framework) is another DNS record that lists which servers are authorized to send email on behalf of your domain. Ours only listed Cloudflare Email Routing. It was missing:

Emails from those services were technically unauthenticated, which increases the chance of landing in spam, especially now that Gmail and Yahoo enforce stricter rules for high-volume senders. Updated both in the same DNS session.

The Final Step: Getting Every URL to Google at Once

Bride and groom at the floral arch during a Scarborough House ceremony
Bride and groom at the floral arch during a Scarborough House ceremony

Fixing the DNS problem stops the bleeding, but it does not immediately tell Google to go back and re-evaluate every page it had been sitting on. Google recrawls sites on its own schedule, which could mean weeks before it works through our 302-page backlog.

We used IndexNow to skip the wait.

IndexNow is a protocol supported by Google, Bing, and other major search engines that lets you submit a list of URLs for immediate crawl prioritization. Instead of waiting for Google to discover that our pages are now clean and consistent, we sent a single API call with all 2,383 URLs from our sitemap at once.

That batch included:

The response came back HTTP 200. All 2,383 URLs submitted in one call. Google, Bing, and every other IndexNow participant received the notification simultaneously.

We expect the indexed page count to climb noticeably within a week as Google works through the queue now that the canonical confusion is resolved.

What to Check on Your Own Domain

This problem is not specific to our hosting setup. Any venue with a custom domain, especially one using Cloudflare or another CDN in front of their hosting server, could have this exact issue and never know it.

Here is how to check:

Step 1: Run a curl command on your own domain

curl -I http://yourvenuedomain.com

Look at the Location: line in the response. It should read something like:

Location: https://yourvenuedomain.com/

If it reads:

Location: https://yourvenuedomain.com:443/

You have this problem.

Step 2: Check your Cloudflare DNS records

Log into Cloudflare, go to DNS, and find your apex A record (the one with just @ in the name column, pointing to your server IP). The cloud icon next to it should be orange (proxied), not grey (DNS only).

If it is grey, click the toggle to enable proxying. Your HTTPS redirect will immediately start going through Cloudflare, which generates clean redirect URLs without the port suffix.

Step 3: Check your Google Search Console indexing report

Go to Search Console, click Indexing, then Pages. Look at the "Discovered, currently not indexed" count. If that number is large relative to the total pages Google knows about, a canonical issue is often the cause. The content quality problems that lead to "Crawled, not indexed" are a separate issue, but a big "Discovered" backlog almost always points to infrastructure.

Step 4: Verify your DMARC and SPF records

You can check both at MXToolbox for free. Run a DMARC lookup and an SPF lookup for your domain. If DMARC shows p=none or is missing entirely, you have no protection against email spoofing. If SPF is missing the services you actually send email through, your deliverability is at risk.

The Bigger Lesson

Wedding vows under a floral arch with guests at Scarborough House
Wedding vows under a floral arch with guests at Scarborough House

We had been doing the right things on the content side: writing in-depth pages, building internal links, submitting a sitemap, maintaining consistent NAP information. None of it moved the indexing needle because the infrastructure underneath it was broken in a way that was completely invisible to us.

Technical SEO is not glamorous. It does not produce immediate visible results the way a new blog post does. But it is the foundation that everything else sits on. If Google cannot reliably determine what your canonical URL is, it does not matter how good your content is. It will sit in a queue.

The fix was one DNS toggle. The audit that found it took a few hours of methodical investigation into records we had never looked at closely. The result will be hundreds of pages seeing their first real chance at indexing.

If you manage your own domain and have not done a DNS and GSC audit recently, this is a good reminder that the problem you cannot see is often the one doing the most damage.

We will follow up with actual indexing numbers once Google works through the backlog. Check back in a few weeks.