Google Search Console: Not Found (404)

Hi guys, appreciate your help on this.

So i added my website to google search console and after a few days it showed that all is well but it’s showing 90+ links as Not Found (404), these are all the temporary links that Ghost generates when scheduling a post, the ones that end with a string of numbers… Does this affect my website ranking? Because they are a lot 98… Is there a way to remove them from Ghost or Google Search Console?

Appreciate your technical help on this!
Bilal

Those shouldn’t have ended up in Google, if they’re preview links. Any chance you’ve had an error in your routes file? That could cause posts to not be in any collection, resulting in long uuid urls.

In any case, since the posts don’t exist at those urls, 404 is an ok response, or if you can work out what post should be served, you could write a redirects file. (That’s another reason I don’t think they’re preview links. Those auto-redirect…)

Hi @Cathy_Sarisky thanks for your reply and support. These are indeed “Not Found (404)” requests. This is my routes file code below, any chance you can check it out? I am so bad at knowing what to edit but do know how to amend stuff…

Appreciate it!!!

routes:
  /signup/:
    template: signup
    # data: page.signup # When active data will be taken from the  "/signup/" page
  /signin/:
    template: signin
    # data: page.signin # When active data will be taken from the  "/signin/" page

collections:
  /:
    permalink: /{slug}/
    template: index
  /writings/:
    permalink: /{slug}/
    template: writings
    data: page.writings

taxonomies:
  tag: /tag/{slug}/
  author: /author/{slug}/

(edit: wrap code in </> to make it survive posting.)

Nothing jumps out at me as being wrong with the routes file, except that there’ll be no posts in the /writings/ collection, because there’s no filter on the /: collection, so it’ll take all the posts. (If posts show up at /writings/, it’s likely because the template is making a {{#get}} request. There’s nothing horribly wrong with that, if you’re getting the behavior you want.

It’s not clear to me why Google Search Console has a bunch of uuid-like URLs, unless you used to have some broken routes and the page got indexed then. Scheduled or draft posts shouldn’t ever appear in the sitemap, and a draft post’s uuid-like url would only be discoverable by Google if you specifically submitted it or if you posted it on your site and it got crawled. I further don’t think think these are preview links because Ghost redirects preview links to the published post, once the post is published. So… unless you have 98 draft posts that you somehow shared links to, probably not?

If you take a look at individual posts with 404 errors in Google search console, you can see what page Google found them on. That might give you a hint.

A few hypotheses and possible solutions below.

  • You are running some automation/integration that’s supposed to submit your new posts to Google, but that automation is broken, causing the submission of unpublished posts. (Fix the integration and wait for a re-crawl to resolve the problem.)
  • You used to have a different set of routes, and some posts were not included in any route. Those posts got assigned uuid-like links and were crawled by Google while the routing was broken. When you later fixed the routes file, the posts got assigned correct urls, but Ghost doesn’t automatically redirect in that situation. (If you can figure out where those links are supposed to go, you can write a redirects.yaml file, but if not, just wait for them to time out, and meanwhile make sure you’ve submitted your sitemap to encourage Google to re-crawl.) I think this is the most likely situation, but without the details from GSC, I’m just guessing.
  • Someone (maybe you!) is posting links to uuid-like urls, either on your site, or else somewhere else. (See the note about looking at individual link details above.) If it turns out to be you or some staff member on your site, stop, and wait for Google to recrawl. If these link are on someone else’s site, you can ‘disavow’ incoming links in Google search console.