GSA Search Engine Ranker FAQ

For a very long time we had an inofficial FAQ thread here started by @Erbsensuppe. Many thanks for that!
I recently extended that and moved it to the official manual as Im currently trying to document everything a bit better.
Anyway that old thread is still there but kind of outdated.
Please head over to the following webpage for:
The latest FAQ on GSA Search Engine Ranker
If you have some generic questions/answers that should go into that new document, let me know here and I add it.

Question on bento box search tools

Hello All, I am looking to implement a bento box search tool similar to what is on https://libraries.indiana.edu/ or https://www.lib.umich.edu/ when you search something.

Does anyone know where I can find a good site to learn this or how to implement it.
The UI/UX elements of a bento box are relatively simple and straight forward. Pulling the search results (intelligently sorted by relevancy) is very difficult and non-trivial.

I am trying to find what current bento box search tools exist….

Question on bento box search tools

WP_Query: how to search tags in addition to a custom post type?

Below is what I have so far for a custom rest endpoint (‘placesdb/v1/search?term=’) for a custom post type (place). This successfully returns all the places that have the search term in the title or content. However, I also want to return all the tags (tag archive pages) that match the search term (the same result as calling the non-custom ‘/wp/v2/tags?search=’). Is it possible to somehow add the tag results to the place results? I already successfully did the front-end approach of calling the places and tags endpoints separately via ajax, but I would rather get all the data in one swoop. Hence my attempt at making this custom endpoint.

function placesSearch() {   register_rest_route('placesdb/v1', 'search', array(     'methods' => WP_REST_SERVER::READABLE,     'callback' => 'placesSearchResults'   )); } function placesSearchResults($  data) {   $  places = new WP_Query(array(     'post_type' => array('place'),     's' => sanitize_text_field($  data['term'])   ));    $  placesResults = array();    while($  places->have_posts()) {     $  places->the_post();     array_push($  placesResults, array(       'title' => get_the_title(),       'permalink' => get_the_permalink()     ));   }    return $  placesResults; } add_action('rest_api_init', 'placesSearch'); 

Users (erroneously) type a short URL in the Google search box instead of the address bar. How to make it navigate instead of showing search results?

I’m using a URL shortener to publish pronounceable URLs for my pages so I can tell people something like, "Visit mydomain.com/slug to solve that problem." If people go to the address bar of their browser and enter mydomain.com/slug URL there, then the shortened URL works, and it redirects them to the intended destination page. But if a non-technical user goes to the Google search page and enters mydomain.com/slug into the search box there, apparently, Google apparently isn’t smart enough to recognize that they typed in a URL. It tries instead to search for the URL as keywords and comes back with a list of search results.

When I click "New Tab" in my browser, I know the difference between the address bar and the search box, but many non-technical users don’t, and Google gives the same instructions in both places. Both locations claim to accept both search terms and URLs, but apparently they have different logic for determining which is which. For them to behave differently and not follow the URL when it’s typed into the search box instead of the browser address bar seems to be a fatal flaw in the entire concept of shortened URLs – unless there’s something else I can do to make them work regardless of which field someone types them into. Certainly I can’t be the only one facing this.

What can I do to teach Google that my shortened URL is indeed a URL and when someone types it in the search box, it should go to the place where that URL redirects to?

When does google remove an entire domain from search results?

What I need to know is that, what does a certain website have to violate in order to get its domain removed completely from Google Search?

I am asking because I’ve seen websites infringing on DMCA protected content (Books, Movies, etc) having their domain removed from google, so they purchase another one and redirect the old domain to the new one.

But at the other hand, there are many websites of such type never got their entire domain removed from Search Results (Only infringing URLs got removed) although they’ve been running their sites for years, have a lot of popularity and there are tons of DMCA reports filed against them monthly.

So can you please explain how does Google behave in matters of domain removals?

Do I get back all the search engine rankings I had after having blocked a domain using robots.txt?

I blocked Google from crawling my domain using a robots.txt rule

User-Agent: * Disallow: / 

by mistake. Just recently I noticed, two months later, and I removed the robots.txt file. The website was previously well ranked for certain queries. Now it is obviously not, with most webpages having disappeared.

Will I take a permanent hit on my rankings because of this? How much time should I expect it will take to recover it? Is there anything I can do to speed up the process?

How to prevent discovery of URLs by search engines?

I crawled my WordPress site using the Screaming Frog program and noticed a few issues which might have SEO implications and was hoping someone could help identify the problem (if there is one).

N.B: I have obscured the domain name in the image as I do not want it made public.

The canonical URL for my domain is prefixed by https://www but as you can see from the tree graph image below, there are a number of URLs accessible under the http protocol and the non-www version of the domain. Those URLs are non-indexable but I’m curious as to why they’re accessible at all. I was thinking that shouldn’t happen if the proper redirects were in place.

In the WordPress admin settings I have entered the correct version of my domain for the WordPress and site addresses (i.e., https://www)

It’s possible my .htaccess file might require editing so I have pasted it below:

# BEGIN LSCACHE ## LITESPEED WP CACHE PLUGIN - Do not edit the contents of this block! ## <IfModule LiteSpeed> RewriteEngine on CacheLookup on RewriteRule .* - [E=Cache-Control:no-autoflush] RewriteRule \.object-cache\.ini - [F,L]  ### marker CACHE RESOURCE start ### RewriteRule wp-content/.*/[^/]*(responsive|css|js|dynamic|loader|fonts)\.php - [E=cache-control:max-age=3600] ### marker CACHE RESOURCE end ###  ### marker FAVICON start ### RewriteRule favicon\.ico$   - [E=cache-control:max-age=86400] ### marker FAVICON end ###  ### marker DROPQS start ### CacheKeyModify -qs:fbclid CacheKeyModify -qs:gclid CacheKeyModify -qs:utm* CacheKeyModify -qs:_ga ### marker DROPQS end ###  </IfModule> ## LITESPEED WP CACHE PLUGIN - Do not edit the contents of this block! ## # END LSCACHE # BEGIN NON_LSCACHE ## LITESPEED WP CACHE PLUGIN - Do not edit the contents of this block! ## ### marker BROWSER CACHE start ### <IfModule mod_expires.c> ExpiresActive on ExpiresByType application/pdf A31557600 ExpiresByType image/x-icon A31557600 ExpiresByType image/vnd.microsoft.icon A31557600 ExpiresByType image/svg+xml A31557600  ExpiresByType image/jpg A31557600 ExpiresByType image/jpeg A31557600 ExpiresByType image/png A31557600 ExpiresByType image/gif A31557600 ExpiresByType image/webp A31557600  ExpiresByType video/ogg A31557600 ExpiresByType audio/ogg A31557600 ExpiresByType video/mp4 A31557600 ExpiresByType video/webm A31557600  ExpiresByType text/css A31557600 ExpiresByType text/javascript A31557600 ExpiresByType application/javascript A31557600 ExpiresByType application/x-javascript A31557600  ExpiresByType application/x-font-ttf A31557600 ExpiresByType application/x-font-woff A31557600 ExpiresByType application/font-woff A31557600 ExpiresByType application/font-woff2 A31557600 ExpiresByType application/vnd.ms-fontobject A31557600 ExpiresByType font/ttf A31557600 ExpiresByType font/otf A31557600 ExpiresByType font/woff A31557600 ExpiresByType font/woff2 A31557600  </IfModule> ### marker BROWSER CACHE end ###  ## LITESPEED WP CACHE PLUGIN - Do not edit the contents of this block! ## # END NON_LSCACHE #This Apache config file was created by Duplicator Installer on 2021-02-17 10:08:29. #The original can be found in archived file with the name .htaccess__[HASH]  # BEGIN WordPress # The directives (lines) between "BEGIN WordPress" and "END WordPress" are # dynamically generated, and should only be modified via WordPress filters. # Any changes to the directives between these markers will be overwritten. <IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$   - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>  # END WordPress 

enter image description here