FAQ of SEO-G and META-G

INTEGRATION SERVICES FOR WEBSITE OPTIMIZATION

This page contains common problems and answers for the SEO-G and META-G modules created and maintained by Asymmetric Software.

1 When I click an SEO-G link I end up with a 404 error.
i). Ensure the .htaccess is present, your store operates on an Apache server, the mod-rewrite method is enabled on the server and the catalog root folder of your eCommerce store is correctly described inside the .htaccess file. If the mod-rewrite is not available the module can function by hooking the server error handler. This should function on both IIS and Apache servers although all testing is done with the later.
ii). Ensure the SEO-G Extension configuration switch matches the setting in the .htaccess file. SEO-G should be used with the mod-rewrite method and it is tested under with Apache servers. If your store is under a different server (eg: IIS) you will need to setup some propriatery server script to perform the same function as the mod-rewrite or use the error handler. The rewrite part cannot be done via PHP and it is server specific.

2. When I submit my sitemap to Google the later complains that my links contain redirections.
i). Open the XML file ensure the links described in it match the friendly SEO URLs contained in the SEO-G reports page. ii). You must use the build-in sitemap facility to create sitemaps. Using other external module may cause this problem. The sitemap generator is available from the Reports page on the SEO-G admin settings.

3. When I click an original URL no redirection occurs.
i).  Ensure redirection is enabled  from the SEO-G configuration page on administrator end of your eShop.
ii). Old versions of SEO-G did not include some of the redirection methods. SEO-G Renegade Edition includes 4 separate redirection methods . The first method uses a proximity algortihm with the closest database match against the recorded URLs.  The second method redirects from the original url of an e-commerce store to the translated one in order to cover cases where a seasoned e-shop deploys SEO-G for the first time. This second method speeds up the links update with search engines and synchronizes the indexed URLs. The third method is the external redirect script that uses the server responses via the .htaccess Apache script and its purpose is a mass redirect followed by utilization of the proximity redirect mechanism. The fourth method uses the dedicated redirection table, where the merchant may add non-existent URLs that they need to redirect to specific pages inside the store. This is the only manual method that can instruct SEO-G for links that need redirection. The first two methods rely on configuration switches to be enabled or disabled.
iii). For custom URLs, ensure the URL that redirects is present inside the SEO redirection table. Both Source and Destination URLs must be defined along with the redirection type.

4. I have thousands of products and pages take long time to be loaded when SEO-G is enabled.
i). Make sure the Continuous Check switch is turned off, Safe mode switch is on, Process secure pages switch is off under the SEO-G configuration page.
ii). The Renegade versions of SEO-G use caching methods and optimized database tables. Older versions of SEO-G have this latency problem and becomes apparent depending on how an eShop is structured. The more links exposed and processed in a single page, the longer for the site to load.
iii). Analyze the current SEO-G reports table and utilize the SEO-G Exclude script. Add the scripts you do not want to be processed in the exclusion list.
iv). Ensure the SEO-G Periodic Refresh switch is set to a reasonable value. A very short refresh period may force the module to update continuously and regenerate friendly URLs.
v). Replace unnecessary links that cannot be used by spiders and show up with the $_GET array. Remember that every URL that passes through the tep_href_link() function is subject to processing by SEO-G. Use forms where necessary. There is no point having direct buy now URLs passed via the $_GET array, as spiders can never use them.
vi) Ensure that unique names are used for the products. Unless there is a common linkage for the database entities that are translated by SEO-G, product names must be unique for optimum performance. If the flat structure is in place where each product is directly translated from the products name to URL a duplication of product names will cause latency problems. SEO-G will not distinguish the product identifiers in that case because the database records will contain a single URL. So every time another product is parsed via the tep_href_link function SEO-G will perform an update deleting the old product leading to SEO_URL database table fragmentation.
vii). Examine the last links update of SEO-G. This is available from the SEO-G Administration configuration page.

5. When I submit my sitemap to Google I get an error.
i). SEO-G stores the sitemap file at the root of your eCommerce catalog folder. Normally the permissions of the folder is 755. Depending how you or your host configures the server the internal requests maybe interpreted differently. When the server is setup properly the owner of the request shows up as itself therefore SEO-G should be able to write/create the file.
ii). If you cannot setup the server properly due to limited permissions by your host use the download option (do not tick the notify Google checkbox). Store the sitemap file locally and then submit it to Google. You need to have a google account to utilize the sitemap. You will need the verification header configured for your store's home page. If you also have META-G there is a switch to specify the header. META-G injects the header automatically for the home page only.

6. I created (or want to create) a new class to handle a different parameter for SEO-G
Parameters processed/handled by SEO-G for your eShop, fall into 2 main categories. Those that require a class and must be associated with a database table and those that are common for all entities.

A common parameter is the "page" parameter that is used extensively during pagination of products under different scripts. Integrating a common parameter requires minimum code changes on the seo_url.php class of SEO-G on the catalog end only. You must not create a class or specify an SEO-G type for common parameters on the administrator end.

A handled parameter requires a class on the administrator end that interfaces with the parent class of SEO-G. In addition such a class must be present and configured inside the SEO-G types page. A database table must exist that stores the entity names for a handled parameter and subsequently can be used by the SEO-G on the catalog end to generate the friendly SEO URL. The easiest way to integrate a new parameter is to copy the element of an existing one. One of the simple classes is the one that handles the manufacturer as it requires one additional table for SEO-G and uses just the standard manufacturer table for processing.

7. When I activate the META-G Lexico for SEO-G I get incorrect links built-up.
i) Make sure the phrases included to shift the keywords density as the ones intended. Do not duplicate content inside the META-G lexico. The META-G code will discard common parts of the URL that it encounters when it sees a word match.
ii). If in doubt, disable the switch and operate the SEO-G link components manually and test your store's generated URLs.

8. I have 2 products in 2 different categories (not-linked) with the same name.
Unless the eShop owner interferes and manually edits the names generated for each product (or if the products with the same names are generated in different instances), SEO-G will handle this by adding a incremental descriptor at the end of the products name. If the product name ends up with an identical name in the database, a dependency on the SEO-G types setup, defines how the finalized link will be described on the front end. With directory structures a separate link will be generated as the category will be appended in front of the product. (Assuming a correctly setup eShop).

For eCommerce stores deploying a plain SEO-G structure where the types override mechanism is in effect, only one link will be maintained by SEO-G. The concept is based on a first comes first served basis. Since the products listing operation and display functions are driven by the core eCommerce site code, the listing will display both products with different prices, pictures and so forth but the links will point to the same product. The same applies with every other entity SEO-G may handle.

For eCommerce stores where the owner requires the same product name and he's willing to place the products under different categories, we strongly recommend the use of the directory structure that is available by SEO-G. Modifications to the eCommerce core code are necessary in this case, as for each product the category part of the link must be present. Therefore scripts that list or display products must be altered to calculate the proper categories path. In addition the SEO-G types entries for the co-existing parameters (in this case cPath and products_id) must be setup to void possible overrides. Linkage must be set to be the same, among the co-existing parameters and sort order to be properly setup. (cPath must use a lower sort order for the categories to appear before the products part using the products_id).

9. When I truncate the entire reports table the SEO-G URLs do not immediately show up.
By default SEO-G operates in a progressive manner. URLs are build-up gradually depending on incoming requests. At the same time non-existed URLs, are by default, using a 301 redirect to the pre-defined page, as listed under the SEO-G configuration page. Deleting the SEO-G SEO_URL tables often, does not help you with search engine positioning and listing. On the catalog end it is strongly recommended to use a sitemap module along with an all-products module and invoke them in some way to at least generate the vast majority of the friendly SEO URL links instantly. Even if you do not want these scripts to appear with your regular eShop's catalog you could deploy them on the catalog and invoke them only from the administrator end. However this is a custom integration and cannot be included with the SEO-G internals solely from the administrator, as it depends on the preferred URL construct.

10. When I delete products or update the product/categories names does SEO-G modifies the finalized friendly URLS?
Subject to the SEO-G Periodic refresh setting and  entity names setup on the administrator end the URLs can be updated automatically. The Renegade Editions of the SEO-G module synchronize the entities (products, categories, etc table) and the finalized URLs. Finalized URLs (those appear with the reports table) are restructured automatically by default.

11. I recently deployed SEO-G and some of my old links are still visible with search engines
i). Use the SEO-G user redirection table from the eShop's administrator end to include the input/output URLs of your choice.
ii). When common parameters are present those not processed by SEO-G but indexed from search engines, you could either remove them from the php files, if they're not used, or you could create the necessary code to handle such parameters. "sort" and "filter_id" maybe used for various entities and code development to  handle these parameters can be difficult. In such cases replace these parameters with ones that can be handled by SEO-G and are useful for your store. There are various modules available for this purpose via the osCommerce community. The I-Metrics layer also uses a separate approach with a filtering mechanism to create an abstraction layer and generate user defined parameters for your eShop. Not only duplicated content can be avoided in this way but the SEO-G recorded URLs will be precise and meaningful to search engines.

12. I tried to deploy SEO-G but I get a number of php errors.
SEO-G has been tested extensively against php errors. You should go through the integration instructions, repeat and/or examine the entire installation for your eCommerce store.

13. Design elements of my eShop's pages appear differently when I enable the SEO-G master switch
This is a common integration issue that will happen if you do not follow the integration instructions and you blindly copy the SEO-G files over to your eCommerce store. Follow the manual instructions and ensure the section of your application_top.php exists in the root.php for SEO-G to operate properly.

14. Secure pages appear to be handled by SEO-G although Secure processing is turned off.
i). Incorrect integration of SEO-G may create this problem. First examine if the code in application_top.php that detects the connection type and whether this same code is being properly duplicated inside the root.php.
ii). Examine the call to the tep_href_link function for the link in question inside the php files. Identify the caller and whether the SSL parameter is present in every case. Every script that requires a secure connection must be called via the tep_href_link function with the connection type being identified as 'SSL'. Failure to do so may disable the shopping cart functionality.

15. What server type SEO-G requires
Apache Server with mod-rewrite enabled. If mod-rewrite is disabled or absent, hook the error handler to the root.php decoder script.

16. Installed SEO-G and some of the .html physical pages do not work
Either configure the server so the SEO-G operation is limited into the catalog folder where your eCommerce store resides or deploy the necessary .htaccess rules on the separate folder to void the SEO-G settings or use a different extension like .jsp, .asp for the friendly URLs generation. The last method is far more effective as it provides better security by masking the store's operating environment and limits malicious attempts from outsiders towards known exploits (typically can be initiated and automated by bots).

17. The manufacturers box links are not converted by SEO-G.
The manufacturer's box or any other box that uses a drop down list will not be converted by SEO-G because each entry in the box is not a link but an identifier that is submitted along with a form. For a link to be converted by SEO-G it needs to meet the following two requirements 1) a regular html <a> tag and 2) the core function tep_href_link. Subject to the SEO-G configuration settings the tep_href_link function will return the converted SEO URL.

18. Redirection to the manufacturers page doesn't always work.
Make sure the manufacturer's URL is properly setup in the database. The code will attempt to decode the URL inside the redir.php file. The stock osCommerce code compares the string stored in the database against the incoming URL string before allowing the redirection. This issue can manifest itself when multiple parameters are present with the manufacturers external URL. Typically the URL is stored without special encoding in the database. So adding a separate conversion for characters like the & should get around the database string mismatch

Replacing the documented with the following code in the redirect.php should eliminate this issue.

//-MS- SEO-G Support Added
  if( isset($HTTP_GET_VARS['goto']) ) {
    $new_url = htmlspecialchars(urldecode($HTTP_GET_VARS['goto']));
    $new_url = str_replace('&amp;', '&', $new_url);
    $HTTP_GET_VARS['goto'] = $new_url;
  }
//-MS- SEO-G Support Added EOM

It's the same as of v1.20 with addition of the & char conversion.

19. Attempting to notify Google for the sitmap update fails.
With the old versions of SEO-G upto v1.20, this can be caused due to security server configuration that blocks the fopen function for accessing HTTP directly. To fix the issue we use the fsockopen function instead. Therefore open the catalog/admin/seo_reports.php file locate the following code:
        $notify_string = 'http://www.google.com/webmasters/sitemaps/ping?sitemap=' . $sitemap_url;
        $handle = fopen($notify_string, 'r');
        if( $handle ) {
          fclose($handle);
          $messageStack->add_session('Google Notification successfully sent', 'success');
        } else {
          $messageStack->add_session('Could not notify Google - check your internet connection', 'error');
        }

Replace it with:

        $handle = fsockopen("www.google.com", 80, $errno, $errstr, 15);
        if( $handle ) {
          fputs($handle, "GET " . '/webmasters/sitemaps/ping?sitemap=' . $sitemap_url . " HTTP/1.0\r\n");
          fputs($handle, "Host: " . HTTP_CATALOG_SERVER . "\r\n");
          fputs($handle, "Referer: " . HTTP_CATALOG_SERVER . "\r\n");
          fputs($handle, "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n\r\n");
          while (!feof($handle)) {
            $buf .= fgets($handle,128);
          }
          fclose($handle);

          if(stristr($buf, 'successfully added') === false) {
            echo $buf;
            exit();
          } else {
            $messageStack->add_session('Google Notification successfully sent', 'success');
          }
        } else {
          $messageStack->add_session('Could not notify Google - check your internet connection', 'error');
        }

Later versions of SEO-G do not have this problem.

20. SEO-G Rewrite Mechanism
There are lots of misinformation around the web, about the rewrite mechanism of SEO-G. To put the record straight, SEO-G uses an encoding algorithm for the incoming SEO URLs via md5 and not plain text as you may read elsewhere.

The decoding mechanism matches the key for the link to the original osCommerce URL. Parameters are then retrieved by the database and populate the $_SERVER array. Thus this process makes the module extremely hard to do injections as the arguments passed from the URL populate the varilables used for the osCommerce scripts. This information is also documented with the readme file with the integration instructions.

21. How do I remove the identification characters from my URLs?
SEO-G generates 100% static URLs of your choice. There are no identification characters with the URL. The links are generated in the following format:
http://www.example.com/example-page.html
Make sure you have uninstalled other SEO modules that may process the osCommerce parameters before integrating SEO-G.

22. How do I specify the name of the link?
There are 2 separate methods. The first one is to modify the entity name. For example with products the SEO Name can be setup when you edit a product from the SEO section. It can also set from the SEO-G controller inside the SEO-G options. The second method is via the reports page where all friendly SEO links are listed. An edit function is available to modify and update each link. The second method is not recommended because the links may rebuild subject to the timeout periods that drive the link refresh operations.

23. Does SEO-G supports multiple languages?
SEO-G generates friendly links in the primary language where your administration end of the eshop operates. The same link is generated and used for all languages. Ideally you should avoid exposing language parameters with links because it will detriment value of the URLs and in some cases generate duplicated content because of the translated pages. Setup a form with a POST method for switching languages instead of exposing language identifiers in your store. To support languages other than English the create_safe_name member function of the SEO-G class on the catalog end, must be changed to filter the specific alphabetical characters. The strtr PHP function can be used for the conversion. For example
$string = strtr($string, "äåö", "aao")

24. How do I exclude a script from generating SEO links?
SEO-G includes an exclusion list where the site owner can specify the scripts to exclude from the SEO-G generator. Using your osCommerce administration panel goto SEO-G -> G-Exclude. From the Insert Script Entries select the PHP file to exclude and click the insert button. The script will be added to the exclusion list. Subsequently SEO-G will not process parameters of the script nor the script itself.

25. Is there an RSS feed for SEO-G and META-G?
There is a sitemap xml generator integrated with SEO-G that converts the links listed in the reports page subject to the frequency specfied for the Google Sitemap. To generate the sitemap goto your osCommerce administration panel -> SEO-G -> G-Reports. Click the Google XML button to generate the sitemap. If you tick the notify google checkbox then sitemap will be automatically stored in  the specified path. The path can be configured from the SEO-G configuration page.

META-G includes an RSS feed for the base products of the store designed according to the Google guidelines. To generate the RSS products feed goto your osCommerce administration panel -> META-G -> Meta Feeds and click the generate button. The feed is progressively generated and covers all enabled products in your store. The generated file is stored in the pre-specified folder. The folder can be set from the META-G configuration page.

It is strongly recommended to use the build-in tools of SEO-G and META-G to generate the maps as the scripts are aware of the SEO links and META-Tags specifics. Do not use an external sitemap generator that is not SEO-G aware because the links will be likely different than those stored in the database and may damage the SEO of your store.

26. How do I verify ownership of my site in Google webmaster tools for my feeds?
Goto your administration panel -> META-G -> Configuration, then select META-G google verify header. Click edit then enter the Google signature given from the Google webmaster tools. Finally click update. META-G will emit the verification header on the home page of the e-commerce store only,  per the Google guidelines.

27. Is there a demo site where I can see the generated SEO links?
The demos.asymmetrics.com and the entire www.asymmetrics.com site operates with SEO-G and META-G. The extension used in our case with the generated SEO links is .asp.

28. Is there canonical meta-tag support with META-G?
No there is no support for canonical tags. The need for canonical tags implies problems with parameters passed and link processing or custom requirements that need to be addressed differently for each case. The I-Metrics packages have built-in methods to sort known parameters in a defined order. The stock osCommerce although has a consistent way to form parameters with links it can accept any parameter with a search criteria or with the page splitter so canonical problems are likely to happen there. However we recommend rectifying the code problems instead of hard-coding canonical tags.

Review: FAQ of SEO-G and META-G

Please enter your comment for this technical article based on your experience.

NOTE: HTML is not translated. Reviews are manually approved by the administrator.

Tags supported for code presentation purposes:
- For PHP enclose the code in [code1][/code1] tags
- For MySQL queries use [code3][/code3] tags
- For HTML content use [code5][/code5] tags
- For CSS use [code6][/code6] tags
 
Your Email (Will not be published):
Your Name:
Your Comments:

Blog and News

The CheetahMail Spam Internal Links Structure Blind Redirects and Exploits
 
 
E-Commerce Modules and Services
 
 
 
I-Metrics Layer by Asymmetric Software
E-Commerce Engine Copyright © 2003 osCommerce (MS2.2)
Copyright © 2003-2012 Asymmetric Software - All rights reserved.
 
 
  Advanced Search
E-Commerce by Asymmetric Software - Innovation and Excellence
  • LOG IN
  • CREATE ACCOUNT
CSS Flyout offers SEO and user friendly navigation controls