This user has been denied support.
Configuration & Settings
Google SEO has lots of settings, organized into several setting groups. If you go to your Admin CP -> Configuration page, and scroll down, you should see the Google SEO Setting groups. The following sections will describe the settings available in each group. Please also read the descriptions of the settings themselves directly in the Admin CP.
Google SEO
This is the main setting group of the plugin. In here you can decide whether or not to enable the various feature sections of the plugin. Disabling a setting here also disables all other settings of that feature, so for example if you disable URL, none of the settings in the Google SEO URL setting group below will have any effect.
Settings in this group:
- Enable Google SEO 404
- Enable Google SEO Meta
- Enable Google SEO Redirect
- Enable Google SEO Sitemap
- Enable Google SEO URL
Note:
Many of the settings below are intended for advanced users only. If you do not understand what a setting does, stick to the recommended default value.
Google SEO 404
Settings in this group:
- 404 widget
- Show 404 errors in Who's Online
- Customize HTTP status codes
- Debug 404 error labels
Google SEO Meta
Settings in this group:
- Meta description
- Canonical Page
- Meta for Archive Mode
- Provide page number for forum and thread titles
- Nofollow links
- Noindex forums
Page number in forum and thread titles
By default, MyBB does not include a page number in the title. This causes Google to complain about lots of duplicate title tags for forums and threads which have many pages.
Google SEO Meta provides a variable which you can include into your forumdisplay and showthread templates. However if you want this, you have to edit these templates manually.
Example <title> tag in the showthread template:
<title>{$thread['subject']}{$google_seo_page}</title>
The variable will only be set for pages > 1, so this change would lead to page titles like "Subject" for page 1 and "Subject - Page 2" for page 2.
Google SEO Redirect
Settings in this group:
- Permission Checks
- Redirect Post Links
- LiteSpeed Bug workaround
- Nginx Bug workaround
- Debug Redirect
Redirect Loops
If you experience redirect loops (redirects that never end) please enable the Debug Redirect feature and send me the debug output. Please note that the debug output may contain confidential information (such as login cookies), so please don't post it in public, but email / PM me directly.
If you are using an alternative webserver, you can also give the LiteSpeed / Nginx workaround settings a try (even if you're not using those webservers) and see if they help.
Otherwise, disable Redirect until a solution can be found.
Redirecting SEO URLs back to MyBB stock URLs
Google SEO does not force you to keep using its URLs. If you want to go back to stock URLs, you can do so. Basically you have two options to achieve a SEO URL -> Stock URL redirection:
- Empty the SEO URL scheme for a particular URL type
This is useful if for example you want to go back to stock URLs for user profiles only, but not for forums and threads.
- Revert changes to core files
This way the Google SEO URL module will be in inactive state.
Do not disable Google SEO URL or Redirect, and do not remove the Rewrite Rules from your .htaccess. All of these components are required to keep old keyword URLs and subsequent redirect working.
Google SEO Sitemap
Settings in this group:
- Sitemap URL scheme
- Forums
- Threads
- Users
- Announcements
- Calendars
- Events
- Additional Pages
- Sitemap Pagination
Sitemap Generation
The sitemap standard (or that what Google, Yahoo, Ask etc. are using) is described here:
http://www.sitemaps.org/protocol.php
The sitemap-index.xml is an Sitemap index file as described there. It links to the actual sitemap files (sitemap-threads.xml?page=1).
Google SEO Sitemaps are created dynamically. When you tell Google about your XML Sitemap (in Google Webmaster Tools, or by specifying it in your robots.txt file) it will download the index, and then browse through the sitemaps listed in this index. So Google goes through your Sitemap page by page similar to how a user goes through your forums page by page.
It's split into pages because creating a sitemap for tens of thousands of threads, users and forums all at once would cause too much load. Also, sitemaps have a limitation of 50000 items per sitemap.
The Sitemap is created dynamically in order to give Google and other search engines the current up to date status of your forum whenever it chooses to access your sitemap. This way Google gets up to date sitemaps as early as possible which leads to google accessing your new content it found via the sitemap as early as possible which leads to your new content getting indexed by Google as early as possible.
Please note that the Sitemap displays only forums and threads that the current user can actually read. So if you see private threads in your sitemap, it may be because you're currently logged in as admin, and does not mean that Google will see those threads too.
Submit Sitemap to Search Engines
For the Sitemap to be of any use, you have to submit it to Search Engines. You can automate this process by adding a Sitemap directive to your robots.txt (example robots.txt included in the Google SEO package). By default your Sitemap will be called sitemap-index.xml.
Google SEO URL
Settings in this group:
- Query Limit
- Evaluation Mode
- Use MyBB's Cache system for SEO URLs
- Punctuation characters
- URL separator
- URL uniquifier
- URL uniquifier enforcer
- Character Translation
- lowercase words
- URL length soft limit
- URL length hard limit
- Handle Post Links
- Handle multipage links
- Forum URL scheme
- Thread URL scheme
- Thread Prefixes
- Announcement URL scheme
- User URL scheme
- Calendar URL scheme
- Event URL scheme
- Include parent forum in forum URLs?
- Include parent forum in thread URLs?
- Include parent forum in announcement URLs?
- Include parent calendar in event URLs?
Evaluation Mode
Google SEO URL has two possible modes of operation.
In Full Mode (Default), every time a SEO URL is requested, it will be obtained and returned immediately. In worst case (if the URL is not cached), this will require a database query. When querying URLs from the database, Google SEO tries to query as many URLs as possible in one go, but it can't always predict which URLs will be required for the rest of the page, especially when other plugins create links too.
In Lazy Mode, Google SEO returns a place holder instead of the SEO URL. Just before the page is sent to the user, it will then proceed to replace all placeholders with the SEO URL. This way, all URLs that are on the page can be handled in a single query.
The downside of Lazy Mode is that there's no guarantee that a requested URL will be used in the output. It might just as well become part of some notification mail or used for other purposes. Since this is most likely to happen during POST requests, Lazy Mode will only work for GET requests and fall back to Full Mode for POST requests.
If you feel that Google SEO uses too many queries on your board, or if your board is just very large and active, or if your database just happens to be very slow, Lazy Mode might be for you. Otherwise stick to Full Mode as it is much more reliable.
Uniquifier
The Google SEO URL Uniquifier is applied to URLs that would otherwise not be unique (and thus result in threads that are not accessible). Collision testing (for example for two threads with the same title) is done only once, therefore the uniquifier must result in a truly unique URL that can not possibly collide with anything else.
A good uniquifier needs to fulfill these two criteria:
- contain the items unique {id}
- contain punctuation that cannot occur in non-uniquified URLs
Early versions of Google SEO used {url}-{id} as uniquifier and therefore did not fulfill criteria 2. This could lead to collisions in rare cases, for example:
ID: 1, Title: Unique, URL: Thread-Unique
ID: 2, Title: Unique 3, URL: Thread-Unique-3
ID: 3, Title: Unique, URL: Thread-Unique-3 (same as Thread 2)
Thread 3 collides with Thread 1 (both are called Unique), so the uniquifier is applied. This results in Unique-3. However, there already happens to be a thread called Unique-3. Doesn't work.
With the new uniquifier {url}{separator}{separator}{id}, the uniquified URL will be Thread-Unique--3. Because the id is already unique, and other URLs can't contain -- (title punctuation is reduced to one single separator, not two), that makes the URL as a whole unique.
If you use a custom uniquifier, make sure it fulfills the two criteria listed above. Be aware that special punctuation characters like :@/?& or space can break your URLs.
Character Translation
Please note that translation of characters is not required (browsers and Google handle them just fine), and it causes additional CPU cost.
You can do character translation in URLs if you so desire. In the textbox of the character translation setting, specify one character per line and its replacement, separated by =.
For example the following would replace German umlauts with their most commonly used ASCII counterparts:
Ä = Ae
Ö = Oe
Ü = Ue
ä = ae
ö = oe
ü = ue
ß = ss
With this character translation setting, Thread-Übergrößenträger would appear as Thread-Uebergroessentraeger instead.
Note:
Google SEO Legacy used a separate translate.php file instead. This file is not used anymore. The translations have to be specified in the setting.
URL Schemes
Google SEO uses a simple, static URL scheme by default (Forum-Name, Thread-Name, etc.). This is recommended because it tells users and search engines exactly what to expect behind an URL. It is possible to customize the URL scheme with various settings. However, not every scheme will actually work. When customizing URL schemes, you have to be aware of the limitations of both this plugin and MyBB.
Avoid Scheme Conflicts
Google SEO URL relies on the webserver to rewrite the URLs to the correct file. Thread-Subject is rewritten to showthread.php, Forum-Name to forumdisplay.php, and so on. For those rewrites to work, every URL must have something in it that identifies it as being of a particular type.
For this reason it's not possible to remove Thread- or Forum- because then the rewrite rules would confuse Subject for a forum URL and Name with a thread URL. When you have a conflict of any kind in your URL scheme, the URLs will stop working and you will also lose the ability to redirect these URLs later.
Note:
If a Rewrite Rule matches more than one type of URL, you have a conflict and your URLs will stop working either altogether or at least partially.
The default scheme avoids conflicts by using prefixes: Thread-{url}, Forum-{url}, Announcement-{url}, etc. This way a thread URL can never start with Forum- and a forum URL can never start with Thread-, so there are no conflicts possible.
You can change those prefixes to something else as long as you keep some kind of unique prefix, for example t-{url} instead of Thread-{url}.
You can also use postfixes, such as {url}-Thread and {url}-Forum. However you can not mix prefix and postfix, as otherwise Thread-Forum could be either a thread called forum, or a forum called thread.
On the other hand, a postfix such as {url}.thread would work even if the other URLs use prefixes, because by default the dot character can not occur in the {url} itself.
Dynamic SEO URLs
If your webserver does not support mod_rewrite, you can put the keyword URL in the dynamic part. The default dynamic URL scheme would be like so:
Forum: forumdisplay.php?{url}
Thread: showthread.php?{url}
Announcements: announcements.php?{url}
Users: member.php?action=profile&{url}
Calendars: calendar.php?{url}
Events: calendar.php?action=event&{url}
Please note that {url} must be a stand alone parameter. The following will NOT work:
?Something-{url}
?something={url}
The only exception to that rule are the parameter names that Google SEO uses internally for rewrites:
forumdisplay.php?google_seo_forum={url}
showthread.php?google_seo_thread={url}
...
Virtual Directory Structure
Google SEO supports including the parent forum name in thread URL, and allows the use of the directory separator /. With this, in theory, you could build a virtual directory structure URL scheme along the lines of f-My-Category/f-My-Forum/t-Subject.
However, due to the issues involved with Virtual Directory Structure, this feature will never be directly supported in any way. You can do it if you absolutely want to but you will have to adapt your own rewrite rules for it (the standard rewrite rules do not look for / in {url}). The rewrite rules suggested in the Plugin Status won't work.
Doing this is NOT recommended for several reasons. First of all it makes URLs more expensive and serves nothing but make your URLs longer than they need to be.
MyBB uses relative links everywhere. Introducing a directory structure, virtual or not, breaks those links. Some of these issues can be worked around, but there's no guarantee that it will work with other things such as JavaScript.
To work around this issue, add a base tag to your headerinclude template:
<base href="{$settings['bburl']}/" />
Here's an example for a Virtual Directory Structure URL scheme:
Forum: f-{url}/
Thread: f-{url}
Announcements: f-{url}
Users: u-{url}/
Calendars: c-{url}/
Events: c-{url}
Parent Forum: {parent}/f-{url}
Parent Thread: {parent}/t-{url}
Parent Announcement: {parent}/a-{url}
Parent Event: {parent}/e-{url}
And the Rewrite Rules to go with it:
# Google SEO URL Forums:
RewriteRule ^f\-([^./]+)/?$ forumdisplay.php?google_seo_forum=$1 [L,QSA,NC]
RewriteRule ^f\-([^.]+)/f-([^./]+)/?$ forumdisplay.php?google_seo_forum=$1/f-$2 [L,QSA,NC]
# Google SEO URL Threads:
RewriteRule ^f\-([^.]+)/t-([^./]+)$ showthread.php?google_seo_thread=$1/t-$2 [L,QSA,NC]
# Google SEO URL Announcements:
RewriteRule ^f\-([^.]+)/a-([^./]+)$ announcements.php?google_seo_announcement=$1/a-$2 [L,QSA,NC]
# Google SEO URL Users:
RewriteRule ^u\-([^./]+)/?$ member.php?action=profile&google_seo_user=$1 [L,QSA,NC]
# Google SEO URL Calendars:
RewriteRule ^c\-([^./]+)/?$ calendar.php?google_seo_calendar=$1 [L,QSA,NC]
# Google SEO URL Events:
RewriteRule ^c\-([^./]+)/e-([^./]+)$ calendar.php?action=event&google_seo_event=$1/e-$2 [L,QSA,NC]
Combined Styles
It is possible to combine the various URL scheme styles to some degree. You can take the standard URL style Thread-{url}, and put the {url} in the dynamic part instead using Thread?{url}. To make this work you need a rewrite for Thread -> showthread.php.
With the {url} in the dynamic part of the URL, you can proceed to including parent forums in thread URLs, even using directory separators. Since / in the dynamic part of the URL is not seen as a real directory, you will avoid most of the pitfalls involved with the Virtual Directory Structure.
Here's an example for a combined URL scheme:
Forum: Forum?{url}
Thread: Thread?{url}
Announcements: Announcement?{url}
Users: User?{url}/
Calendars: Calendar?{url}/
Events: Event?{url}
Parent Forum: {parent}/{url}
Parent Thread: {parent}/{url}
Parent Announcement: {parent}/{url}
Parent Event: {parent}/{url}
The end result would be an URL like Thread?Category/Forum/Subject. Even so it's not recommended because the URL can just get too long.