Search Engine Traffic Guide
In order to achieve as large of a circle of interested parties as possible, good placement in the relevant search engines is an absolute must. A few years ago, there were a number of more or less respectable operators that promised Top Ten positions in all search engines. It's maddening, though, if the agent has eleven or more customers, since not all of them can wind up in the Top Ten. Not only that, but a lot else has changed compared with the early days. Back then, you would register yourself in search machines or have a service provider put entries into hundreds of search engines. It wasn't relevant back then and certainly isn't today. Even though there are indeed innumerable search engines in the market (which, however, avail themselves of only a few different data sources), Google, by current estimates, has the lion's share of the hits. Of the remaining competitors, the search engines of the big portals, Yahoo and MSN deserve the biggest mention. It is thus important to be...
Google provides Web services to perform searches, do spell checks, and retrieve cached Web pages, all of which make up its search service. You even have access to manage AdWords accounts, using the AdWords API service. AdWords is an advertisement system where you can purchase cost-per-click or cost-per-impression ads to be displayed on Google search result pages. Both of these services are currently in beta status and provide SOAP-only access.
The Services_Google package is simply a wrapper around the SOAP extension and is used to access the Google Web APIs for the search engine, spelling suggestions, and cache. To access any of these services, you must obtain a license key by registering for an account. A link to the registration page is available from the previously mentioned URL. Because this package is a wrapper for SOAP both PHP 5 and the SOAP extension are prerequisites for installing and using this package. Having met these conditions, and because the package is currently in alpha status, you install it using the following
Rather than go through the motions of creating a useless Hello World type of example, it seems more practical to create a client that actually consumes a live, real-world Web Service. As mentioned earlier in the chapter, several large organizations have already started offering public Web Services, including Google, Yahoo , and Microsoft. The particularly compelling Google Web Service provides a solution for searching the Web via its databases without having to actually visit the Web site. For example, you could use the Web Service in conjunction with any SOAP-capable language (PHP, C , Perl, or Python, to name a few) to build a custom interface for searching the site, be it the Web, desktop, or command line. However, numerous other interesting features are available to developers, such as the ability to take advantage of Google's amazing spell-checker (which appears at the top of any search results page if the engine thinks that you potentially misspelled a search term). The next...
Vrmed with the knowledge of consuming and creating Web services, you set off to create the next killer application. No matter how great the application might be, the question becomes, how do you go about finding or advertising this Web service Of course, getting it listed in the popular search engines is one of the first steps you should take, but wouldn't it be great if you could easily discover and integrate with Web services without having to wade through all the nonrelevant information returned from search engines and then having to find documentation for a particular service This is where Universal Description, Discovery, and Integration (UDDI) plays a role. This chapter will introduce many of the concepts behind UDDI and show how you can leverage UDDI registries by using PHP
Unfriendly URLs are the biggest problem that search engines searching for dynamic web pages have. Let us briefly describe one example. The new page of a standard Mambo installation usually has the following URL Now Google has a problem. If the i ndex. php file is indexed only once that is, taken into the index of the search engine it isn't enough, because in this case only one page of the entire Mambo web presence would end up in the search engine. Thus the solution has to be to take all of the different URLs into the search engine index. The boldly emphasized part refers to the change of the URL. The value of the URL parameter number is naturally not always 12345, but a different number each time. That, however, doesn't matter at all to the Mambo system, since all of these pages are completely identical. To a naive search engine, however, the pages all have different URLs reason enough, one would think, to register them all in the search engine index. Of course that won't do....
For example, suppose you run a popular forum system that allows anonymous users to post messages. The form that posts to the site is a GET form. Because your site is popular, search engines visit it every day to index your pages. One of the search engines finds the script that submits posts to your forum, and as a web spider does, it visits that page. Without even meaning to, that search engine has now posted a new message to your forum Not only that, but it might have indexed that URL, meaning that when people use that search engine, they could click through directly to that link
One of these trouble spots is the already mentioned links. Usually 'the more the better' applies, but that is not everything. The websites that link to your page should themselves be of good quality and have a high PageRank a cross-linking of your own websites thus will not get you too far. The context within which a link is positioned is also relevant with this. This means that the search engines also evaluate the text of the link and the terms in close proximity to it. A link of the following design is frequently seen in the World Wide Web, but not particularly lucky But search engines use not only links, but also the content of a page in order to establish a ranking of all results. It is a mistake to believe that the frequent repetition of a potential search word or keyword automatically leads to good placement. It is, in fact, completely the opposite too frequent an occurrence of a term can trigger the alarm bells of a search engine, since that can possibly point to a spammer or...
SitePoint also publishes a number of other newsletters. The long-running SitePoint Tribune is a biweekly digest of the business and moneymaking aspects of the Web. Whether you're a freelance developer looking for tips to score that dream contract, or a marketing major striving to keep abreast of changes to the major search engines, this is the newsletter for you. The SitePoint Design View is a monthly compilation of the best in Web design. From new CSS layout methods to subtle PhotoShop techniques, SitePoint's chief designer shares his years of experience in its pages.
Separating query results across several pages has become a commonplace feature for e-commerce catalogs and search engines. This feature is convenient not only to enhance readability, but also to further optimize page loading. You might be surprised to learn that adding this feature to your Web site is a trivial affair. This section demonstrates how it's accomplished.
By default, the URL structure is delimited by slashes, not the typical messy characters such as the question mark or ampersand that you have undoubtedly seen with many web sites using PHI There is a growing trend for web sites to be optimized so that they show up as high as possible on the result lists returned by search engines. This has led many developers to forego the traditional way of passing URL routes to a PHP script, instead using slashes to separate URL elements. Usually called friendly URLs, these paths are more easily understood by users and search engines, which are themselves beneficial to your application. Friendly URLs also allow Cake to better maintain a consistent reference system within the application, which ultimately makes the programming aspect easier and cleaner for you, the developer. Cake's default routes follow this pattern
PAD is a specification designed by the ASP you can find it at http www.asp-shareware.org pad . It is a standard format allowing authors of shareware software to provide information such as company and contact information, support information, software information, and licensing in a common format that may be leveraged not only by users looking for more information about a piece of software but also by online libraries building content and search engines.
The applications that the PHP-MySQL combination have been used for range from the small to the large content management systems for web portals, search engines, time- and resource-tracking tools, reporting and graphing tools, web-based personal information managers . . . the list goes on. In essence, if you can think of an application that uses (1) a database for storage of user data and (2) a browser as the primary user interface, it's a good chance the PHP-MySQL combination will work for you. phpBB (http www.phpbb.com ) is a PHP MySQL-based bulletin board package that enables web site administrators to quickly add unlimited discussion forums to their web site. phpBB includes a multitier privilege system, a powerful search engine support for multiple languages, private messaging, and public and private discussion rooms. phpNuke (http www.phpnuke.org ) is an open-source portal-in-a-box solution that uses MySQL for data storage. phpNuke provides all the features most commonly found in...
This directive protects certain environment variables from being changed with the putenv() function. By default, the variable LD_LIBRARY_PATH is protected because of the unintended consequences that may arise if this is changed at run time. Consult your search engine or Linux manual for more information about this environment variable. Note that any variables declared in this section will override anything declared by the safe_mode_allowed_env_vars directive.
The Zend_Service_Yahoo component allows you to plug into Yahooi's search engine, as well as search images, businesses, and news. Therefore, suppose you want to add a page to the chess club Web site that displays the latest chess news. This news page will appear at http www.example.com news , meaning you need to add a new controller and view.
The simplest example of a form that needs repopulation is a full-text search engine with a single text input. When the user types a word and submits a query to the search engine (in this example, the product find action), the form is usually displayed again in the result page, and the rules of user-friendly interfaces make that this form should display the word previously entered by the user. You could handle it manually by specifying a value for the input tag
Although many open source projects enjoy an active user community, MySQL's user community might better be defined as hyperactive. For starters, the company strives to release an updated version every four to six weeks, resulting in a constant stream of bug fixes and feature enhancements. In addition, there are thousands of open source projects under way that depend upon MySQL as the back end for managing a broad array of information, including server log files, e-mail, images, Web content, help desk tickets, and gaming statistics. If you require advice or support, you can use your favorite search engine to consult one of the hundreds of tutorials written regarding
The Web contains a plethora of information. Remember, both PHP and MySQL are open source technologies, supported by a community of developers who share their work. That means that code is readily available on the Web for your use. There may be some code glitches, but there is help on the Web when you type your query into a search engine. We prefer Google, but you can use Yahoo or even MSN to find useful links.
Unfortunately, it appears that many developers are either unaware of or unconcerned with such disclosure because typing phpinfo.php into a search engine yields roughly 336,000 results, many of which point directly to a file executing the phpinfo() command, and therefore offering a bevy of information about the server. A quick refinement of the search criteria to include other key terms results in a subset of the initial results (old, vulnerable PHP versions) that would serve as prime candidates for attack because they use known insecure versions of PHP, Apache, IIS, and various supported extensions.
Symfony doesn't (yet) provide tools for everything. If you need a PDF generator, an API to Google Maps or a PHP implementation of the Lucene search engine, you will probably need a few libraries from the Zend Framework. If you want to manipulate images directly in PHP, connect to a POP3 account to read emails, or design a console interface for Linux, you will choose the libraries from eZcomponents.
The second issue with GET comes into play when using dynamic database queries that are based on information received from the GET request. Say, for instance, you have a database script set up to delete a record upon the click of a link. Now, let's say that a search engine happens to encounter said link and clicks it. If you haven't set up the script to properly handle such an eventuality, you could quickly find your information missing.
The Portable Application Description (PAD) is a specification designed by the Association of Shareware Professionals (ASP) you can find it at http www.asp-shareware.org pad . It is a standard format allowing authors of shareware software to provide information such as company and contact information, support information, software information, and licensing in a common format that can be leveraged not only by end users looking for more information about a piece of software but also by online libraries building content and search engines. You can find more information about this topic in Chapter 7.
This directive protects certain environment variables from being changed with the putenv() function. By default, the variable LD_LIBRARY_PATH is protected, because of the unintended consequences that may arise if this is changed at run time. Consult your search engine or Linux manual for more information about this environment variable. Note that any variables declared in this section will override anything declared by the safe_mode_allowed_env_vars directive.
It changes the way your application is perceived by the user, from a dynamic thing with cryptic calls to a deep and well organized web directory . All that with a simple suffix. In addition, the search engines will grant more stability to a page named like that.
A warning right off the bat a top position in a search engine cannot be guaranteed. Instead, good content and a fan base are the secrets for success. Google, for example, has tried to take this principle and put it into a mathematical model. This concept is called With the help of the Google toolbar (http tool ba r.google. com ), the PageRank of the current page can be displayed while surfing the web. Some web services also calculate the PageRank for a page. You can find these services by means of a search engine (such as Google, of course) a well-known example of this can be found at From PageRank 5 on, one has a very popular or a well-optimized page PageRank 10 is the maximum and is only held by Google and now and then a few other large sites. The Mambo website, by the way, has an excellent PageRank of 9 and with that, at the time of this printing, is on a level with the Microsoft website. It is thus important to have a lot of interested parties using a link to your own site. So...
Web applications have begun to prefer friendly URLs to convoluted URL strings. URLs like www.site.com cart item race_car work better, for example, than www.site.com index. php page cart&item race_car. This is happening not just for search engine optimization purposes or to make the application more accessible for users but to facilitate simple changes to the overall routing of the application. Consider the difficulty, if a web application were built on GET variables, in revamping its entire routing structure. New problems would present themselves in maintaining legacy URLs and at the same time in implementing new ones. Much would depend on the application itself, but in general, it would take some added functions to reverse URLs.
Another Mambo project for search engine optimization is Xaneon Extensions, available at the MamboForge page at http mamboforge.net projects alias . You can find the official homepage of the project at http xaneon. com mambo extensions . This extension is completely free and in any case worth a try. First you activate the extension, by setting Xaneon Extensions Enabled to Yes. Now you can set individual options via the different tabs (Basic, SEF, Components, Features, and Advanced). You can see very quickly how flexible the Xaneon Extensions are regarding configuration. Thus the structure of the 'pretty' URLs can be easily tuned. There is a special attribute for components with session IDs, which are sometimes attached at the back by means of get parameters, so that they become search engine-friendly. These links can also be customized during the linking to specific components, possibly Contact Us or News Feeds. Xaneon extensions are rich in features and configurable in small detail.
The Yahoo Web service, which uses REST, provides an application to use Yahoo's search engine to find images, businesses, news, and video on the Internet. You must register for the service to obtain an application ID that is used in the requests. You can obtain this ID via http developer.yahoo.net its use is limited to the terms of service on the Yahoo Web site. (The following example does not require registration because it is just using the demo mode.) Consider a hypothetical application that needs to search on terms and display the results it finds on the Internet to a user. Prior to these public Web services, many people would have their application perform a request to the search engine the same way a browser would do it. The result would be that the application would receive a nice HTML page, which then the developer would have to somehow parse to gather the correct information. This was not all that easy, and if the resulting HTML layout changed or if the content the application...
The goal of UDDI was to provide a universal registry, the UBR, where businesses could register their Web services and where those searching for Web services could locate them. In a sense, the UBR is similar to a specialized search engine. UDDI goes a bit beyond that because not only can Web services be located but also it provides the technical information about how they are to be consumed. Whether this will ever come to realization is another matter. UDDI in the public sense never gained much momentum, and data is sparse. Supposedly on private networks, either intranets or extranets, UDDI has found its place. Companies and the businesses they have relationships with are able to publish and locate the services they need in order to work together. Personally I cannot comment on this.
Out of the box, Cake intercepts all URLs and maps them to their appropriate controllers and actions. This is a wonderful aspect of the framework that improves the speed of developing applications. Rather than having long strings of passed variables in the URL or creating dozens of individual scripts to handle every function in the application, Cake's routing system manages all the requests, as you saw in previous chapters. But what about customizing the routing scheme Or what if you want to generate non-HTML files such as PDFs, RSS feeds, or some kind of XML output And what about search engine optimization For these purposes, Cake's routing features will remove the headache of mapping URLs, handling dynamic requests, and customizing the paths and URL structure of the application.
Mantis (www.mantisbt.org ) is a Web-based bug-tracking system designed specifically to track and resolve issues for software and other projects. It supports multiple user access levels, multiple projects, and multiple priority levels, and it includes a full-featured search engine and various built-in reports for up-to-date snapshots of a project's status.
Yahoo provides a variety of search services, including audio, video, and Web searches. This example will focus on performing a Web search, but you can find additional information about performing other types of searches at Although the URL to access the different searches is different, the methods and techniques that will be demonstrated here are the same. The APIs, made up of the different parameters and result structures, are the only things to be aware of when using any of these other services. The developer site provides documentation for the APIs for all the available services. The Yahoo Web Search service allows you to integrate an application with the Yahoo search engine. Just like performing a search using your browser, programmatically you can make remote calls to the Yahoo Web service, process the resulting XML document, and use the results directly in your application. For instance, you could make a custom user interface that allows a search and displays the results in your...
Sometimes, we may know the category, author, or some of the text in a joke with which we want to work, so let's support all of these methods for finding jokes in our database. When we're done, it should work like a simple search engine. The form that prompts the administrator for information about the desired joke must present lists of categories and authors. The code for the form is as follows
Functions accept an optional findQualifiers. These qualifiers allow you to refine your search results by specifying aspects such as name matching and sorting. Table 19-9 shows the full list of available qualifiers, and I will demonstrate many of them later in the Accessing the SAP UDDI Registry via SOAP section.
If configuring PHP with support for SOAP is not within your control, you can implement something very similar to what we are doing here by using the NuSOAP classes that you'll find at http sourceforge.net projects nusoap. Even if you do have SOAP enabled, it is worth becoming familiar with NuSOAP not only to appreciate some well-crafted OO code, but also to realize just how much work this extension saves you. There are more than 5,000 lines of code in the nusoap.php file. It's going to take us fewer than 50 lines of code to initiate our Google search. Furthermore, the SOAP client we create, since it's using a built-in class, will run appreciably faster than one created using NuSOAP. (The NuSOAP classes are also useful if you need SOAP support under PHP 4.)
The main downside to these is that they often use Ruby (or Ruby on Rails) or some other technology for the back end. This means that while the client side of things can be a snap to put together, you'll need to put more effort into figuring out how to tie the client to the server (your PHP code). But doing so isn't impossible, particularly with decent documentation and many Web searches, and may be well worth your time.
The name Mambel Fish is derived from the famous Babel Fish, which assumes translation duties in Douglas Adams' classic The Hitchhikers' Guide to the Galaxy. The name of search machine AltaVista's automatic translator, http babel fish.al tavi sta. com , is also based on it.
As you might imagine, there are plenty of open source libraries available to the PHP language. In fact, one might say that PHP's success as a language is due to the multitude of available resources and the amazing, helpful online community. Because of the large amount of open source development libraries, implementing clean, effective code into your Ajax-based applications is a mere Google search away. However, like anything, some code libraries repositories are better than others. For Windows users, the process is largely the same and can be done from your command line. A simple Google search will allow you to pinpoint an easy installation method for your platform of choice.
Mod_rewrite is one of the best-known and also the most-feared Apache modules. The official documentation is on the Apache website for web server version 1.3 at but there are numerous help sites and tutorials like, for example, the site at http httpd.apache.org docs 1.3 misc rewriteguide.html. This is not necessarily because all search engines also consider the domain name when calculating the ranking, but because the links on these sites usually contain the site name and thus the keyword. The mod_rewrite Apache module has at its heart, the rewrite engine. This is a piece of code that takes URLs and transforms them into another format. At first, that does not seem to be anything special, but in connection with search engine optimization, this could be an interesting approach. Let's take a look at a typical Mambo URL These problems have already been addressed Several get parameters could lead to a downgrading with search engines. A URL based on the following example would be much...
Web services are designed so that computers running different software and on different networks can easily communicate with each other in a cross-platform environment (typically XML). Web services have already become crucial tools for major content providers, such as Google, PayPal, Amazon, and eBay. Google allows access to its search engine, its mapping system (more on that in Chapter 10), and other peripheral services PayPal allows for payment processing Amazon allows you to browse its catalog and eBay allows for other sites to list items for auction in real time.
Search Engine Traffic Tactics
Within this guide you will learn such tactics as the following Domain age, Regular upgrade, Write for your visitors, Press releases, Flash, Meta tags, Heading tag, Site map, Keywords, External links, Business address, Article distribution, Images, Multiple domains, Link exchange and so much more.