Archive for the ‘ Uncategorized ’ Category

WordPress SEO – 10 Top Tips for Rank your WordPress Site

Although WordPress structured in a way that is generally quite good for search engines there are several things you can do to make it even better.

10 Top Tips to Rank your WordPress Site:

Follow the instructions below to greatly improve our search engine ranking for your wordpress blog.

1. Permalinks in WordPress:

Changing your permalink structure is probaly the one most important modification to your site.  Permalinks are  the URL (the web address of your page) is created when you write a new post or page. Your defualt permalink in wordpress will look something like this  http://somethinglikethis.com/?p=N, the the words used in your URL can have a big impact on how it is ranked you need to learn how to change it into something more keyword specific.

How to change the permalink structure in WordPress

In  Settings open the  Permalinks panel, you can choose one of the “common” structures or enter your own in the “Custom structure” field using the structure tags.

If you just want your post name after your domane name  like this www.somethinglikethis.co.uk/title-of-your-post/
choose custom and fill the box with /%postname%/

permalink settings

permalink settings in wordpress

It is important to note that if your site is already indexed and does not use a permalink structure you will need to 301 redirect all your links properly so that any existing links to your pages on the web do not come up 404 not found. there are wordpress plugins that will help you with this: Permalinks Migration Plugin and Permalink Redirect WordPress.

2.Choosing your own Permalink Text

Google doesn’t really like urls that are too long, your title may have words like ‘and’ in it or may simply have too many words in it to be a keyword rich url. To make your permalink search engine friendly and keyword rich click on the “Edit” button (under the title) and change it to whatever you like.

edit-permalink
editing the permalink in wordpress

3. Optimize Your Browser Titles

Just to clarify here now we are talking about the title in your browser (the meta title) and not the blog title. It is what will appear as your title when found by the search engines on the search results page. and also the meta title is what appears just above the window that your web page loads into. Search engines tend to put more emphasis on the first words of a post’s title. If you install the All In One SEO Pack –  you can specify the meta title tag without changing the title of the blog post.

4. Create Keyword-Rich Descriptions

The description is often what will appear below your post title in the search engine results. It can determine weather or not someone chooses to click on your page so grab their attention and include your keywords. the All in one SEO pack mentioned above gives you complete control of your descriptions.

5. Add Images To Your Posts

Not only do images make your posts look more appealing and will prompt more people to read them but they can also help with your SEO. You can attach  keywords to the “alt” and “title” attributes of each image. You images will then stand a good chance of being picked up in image searches. Also name your actual image with good keywords before you place it on the page.

6. Link Optimization

Not only can you use images to add keywords to your page you can also add keywords to your links.

7. Turn Your Comments On

Don’t forget to turn your comments on!  Every new comment will add  new content  being added to your site. Search engines love sites that are regularly updated. Also people expect to be able to interact with your site so give them the opportunity.

timestamp your post

8. Update your blog regularly

If you don’t have the time to blog on a regular basis it is a good idea to write a number of posts in one go and then timestamp them so that they will be released at well spaced intervals (daily is best but three times a week is still OK and better than posting three article a week on the same day).

To timestamp a post – in the “Publish” click on edit after Publish immediately” and date and time options will appear. Select a date and WordPress will automatically publish your post on the date and time you’ve specified. Great for when you are planning a holiday!

9. Using Social Media in your WordPress Site

Add social media buttons to your posts. You need to make it as easy as possible for your readers to share your content.  This will create backlinks to your site as well as generating traffic, both essential for good ranking. Sociable is a great plugin for adding social media buttons to your site, you can choose the social media sites you want to add and sociable will  automatically add the icons for you.

10. Regularly Check your Site

Regularly check to see if your site is working properly, that there are no broken links to your pages. Sign up for a google analytics account if you have not already done so and also set up a webmaster tools account.

Bookmark and Share
Advertisements

Sphinx Search Engine Performance

The following is a summary of some real-world data collected from the Sphinx query logs on a cluster of 15 servers. Each server runs its own copy of Sphinx, Apache, a busy web application, MySQL and miscellaneous services.

The dataset contains 453 million query log instances from 180 Sphinx indexes, collected over several months, using Sphinx version 0.9.8 on Linux kernel 2.6.18. The servers are all Dell PowerEdge 1950 with Quad Core Intel® Xeon® E5335, 2×4MB Cache, 2.0GHz, 1333MHz FSB, SATA drives, 7200rpm.

Keep in mind, though, that this is real world data and not a controlled test. This is how Sphinx performed in our environment, for the particular way we use Sphinx.

The graph below displays the response time distribution for all servers and all indexes, and shows, for example, that 60% of queries complete within 0.01 secs, 80% within 0.1 secs and 99% within 0.5 secs. Response times tend to occur in 3 bands (corresponding to the peaks in the frequency graph) – <0.001 sec, 0.03 sec and 0.3secs, which partly relates to the number of disk accesses required to fulfil a request. At 0.001 sec, all data is in memory, while at 0.3 secs, several disk accesses are occurring. Whilst the middle peak is not so obvious in this graph, the per-server or per-index graphs often have different distributions but still tend to have peaks at one or more of these three bands.
Sphinx Query Response Times Total for all servers, all indexes

The next observation is that query word count affects performance, but not necessarily in proportion to the number of query words, as shown in the graph below. 1-4 word queries consistently offer best performance. The 6-50 words range is consistently the slowest, most likely because the chance of finding documents with multiple matches is high so there is extra ranking effort involved. Above 50, there is presumably a higher chance of having words with few matches, which speeds up the ranking process.
Sphinx Query Response Time by Query Word Count

Finally, we see that the size of the inverted index (.spd files) also affects performance. The three graphs below show how the response time distribution tends to move to the right as the index size increases. The larger the index, the higher the chance that data will need to be re-read from disk (rather than from Sphinx-internal or system buffers/cache), hence this is not unexpected.
Sphinx Query Response Times for Index Sizes 1MB - 3MB
Sphinx Query Response Times for Index Sizes 3MB - 30MBSphinx Query Response Times for Index Sizes >30MB

Here is a PDF summary of Sphinx performance for this dataset, including many additional graphs of the data by server and by index.

Introduction of Technorati

Flex Widget Layout Framework Specification

Scope
Overview
This component provides a Flex control that manages individual widgets in a grid. The user can drag and drop widgets to reorganize them, as well as close individual widgets, minimize and maximize them, and add widgets to the grid. Each time the layout is updated, the changes are persisted using the Flex Widget Layout Service component. The layout is initially retrieved using that component as well.

The WidgetLayoutControl and WidgetContainer both must be designed using the Flex Code Behind pattern outlined here:

http://www.adobe.com/devnet/flex/quickstart/building_components_using_code_behind/
A prototype showing how the widget layout framework must work is also provided. The functionality for rearranging widgets and minimizing and maximizing must match this prototype. In addition, a sample widget framework can be seen here, with detailed source code:

http://www.adobe.com/devnet/flex/samples/dashboard/dashboard.html

Logic Requirements
Interfaces
All classes and interfaces on the Widget Layout Framework class diagram, in the architecture TCUML provided, are required as part of this component.
WidgetLayoutControl
This control will house the tabs that make up the main part of the widget layout framework, allowing the user to switch between different sets of widgets, with each set in a different tab. This class contains a reference to the WidgetLayoutManager that manages its internals. In the creationCompleteHandler method, it should call “manager.layoutControl=this;” to register the manager properly to control the
widget layout.
WidgetContainer
The WidgetLayoutControl tabs will be filled with WidgetContainer instances. Each WidgetContainer renders a header and footer, with buttons for maximize and close, and will also contain buttons for showing help, and configuration in the future. The WidgetContainer instances each contain an IWidget implementation, from the Flex Widget Base Services component, which represents the internal portion of the widget.
The WidgetContainer will raise WidgetStateChangeEvents when it is dragged, closed, maximized, or restored. The actions should be defined to be unique (“dragStart”, “dragStop”, “minimize”) so they can be processed in WidgetLayoutManager properly. These events will be caught by the WidgetLayoutManager and processed accordingly. In addition, when these events are raised, the methods in IWidget that match the event must also be called. For instance, when the WidgetContainer is closed, the internal
IWidget.close() method must also be called. This class also has a handleWidgetUpdate” method. This method is a callback method for events raised from IWidget instances when their internal state changes. This way the state of the layout will be updated
even if no reorganization is made. This is important, as the widget internals may provide configuration that must be saved when updated. This “handleWidgetUpdate” method should just dispatch the updated event

WidgetLayoutManager
The WidgetLayoutManager performs the actual rearranging and processing of the component. This class contains functionality to reorder widgets, maximize them, restore them to normal size, and close widgets. When a WidgetContainer is moved or a button is pressed, it will raise events that are then processed by the WidgetLayoutManager class. The layout should be managed as shown in the provided prototype. The Adobe sample in the overview has a good example of how the layout can be managed by an external manager class.
WidgetLayoutManager constructor
When the WidgetLayoutManager is initially created, it is given an IWidgetRepository implementation instance, and a layoutService instance. repository should default to “new WidgetRepositoryService()”, and layoutService should default to “new WidgetLayoutService()”. The layout for the current user will be retrieved using the WidgetLayoutService, with the handleLayoutRetrieved method used as the service callback. When the result is retrieved, the layout member variable will be set accordingly.
WidgetLayoutManager initialization
In the setter for the layoutControl property, the “control” member variable will be set to the parameter given, and then “updateLayout” should be called. In “updateLayout”, the widget layout contained in the layout member variable should be applied:
Clear the tabs and contents of the WidgetLayoutControl For each WidgetLayoutTab in the layout
{
Add a new tab to the WidgetLayoutControl that matches the name of the WidgetLayoutTab
For each widget location in the tab
{
Initialize a new WidgetContainer instance
Use the repository member variable to get the IWidget instance based on the location’s widget name
Call IWidget.configure with the value of the WidgetLocation.widgetConfig property.
Set the WidgetContainer.contents property to the value of the IWidget instance created.
Register the WidgetContainer.handleWidgetUpdate method as a listener for the “widgetUpdated” event.
Using the rest of the WidgetLocation properties, add it to the correct location in the layout.
Register the “handle*” methods as handlers for the WidgetContainer events.
}
}
WidgetLayoutManager updates
When the layout is modified through a WidgetContainer being moved, closed, restored, or maximized,
the layout contained in WidgetLayoutManager must be updated appropriately. It is important that the
widgetConfig property of the update WidgetLocation in the layout be updated and saved, using the value
of WidgetContainer.contents.getConfiguration. When the layout member variable is updated to match the
new state of the layout, layoutService.saveWidgetLayout must be called to persist the changes.
Required Algorithms
How the layout happens and how the rearrangement happens when a widget is moved must be
documented in detail.
Example of the Software Usage
This component will be used as a GUI control in the updated TopCoder Cockpit

Future Component Direction
Many widgets will be added that implement the IWidget interface. Also, it may be preferable in the future
to offer new layout algorithms. For instance, instead of the column layout in the prototype, we may want
to provide a layout similar to the Adobe sample linked to in the overview.
Interface Requirements
Software Requirements
Graphical User Interface Requirements
The controls and functionality implemented in this component must match the prototype provided.
External Interfaces
Designs must adhere to the interface diagram definition found in the architecture TCUML file provided.
Changes to the interfaces should be approved in the forum.
Environment Requirements
• Development language: ActionScript3
• Compile target: Flex 3
Package Structure
com.topcoder.flex.widgets.layout.components
com.topcoder.flex.widgets.layout.components.events
com.topcoder.flex.widgets.layout.manager
Software Requirements
Administration Requirements
What elements of the application need to be configurable?
• The URL to the web service
Technical Constraints
Are there particular frameworks or standards that are required?
None
TopCoder Software Component Dependencies:
• Flex Widget Layout Service 1.0
• Flex Widget Base Services 1.0
• Flex Widget Repository Service 1.0
**Please review the TopCoder Software component catalog for existing components that can be used in
the design

http://api.arcwebservices.com/devguide/awx/v4/index_Left.htm#StartTopic=flex/widgets_create.htm#|SkinName=aws

Adobe Flex beats Silverlight every time

Both Adobe and Microsoft are fighting hard to be the preferred vendor for RIA development. They both are awesome tools that will change the way we use the web in years to come. But when it comes to deployment, there is only one option for me and that is Flex. The main reason, 99% of all PCs and laptops have Flash installed on it. If you look at this chart you don’t even see the Silverlight plugin. That is because it is so new that it will take a while to penetrate the market. But even Microsoft’s most popular desktop add-on, Microsoft Windows Media Player, only reaches 83.6% of the desktops. Silverlight will struggle to get widely adopted just like Winforms did. The problem with Winforms is it requires the .Net framework to be installed on the client PC. According to Microsoft’s own website, the .Net framework is at about a 58% penetration rate. Keep in mind that the framework only comes into play on Windows operating systems. I don’t know about you, but I won’t have any success convincing all of my 500 manufacturer and retailer clients to install the framework on all of their desktops. But my Flash applications will work fine since they all already have Flash installed, regardless of which operating system they run. Microsoft did learn from the failed approach with Winforms and addresses this issue with the Silverlight plugin. The problem now for Microsoft is how will they get the necessary penetration that customers like me require. Microsoft is also working with the open source community so Silverlight will work on Linux (see Moonlight). This is a great strategy. But I can’t wait 2-3 years until Silverlight penetrates over 90% of the laptops and PCs across all operating systems. Don’t get me wrong, I like what I have seen (download plugin at own risk) from Silverlight as far as ease of use and functionality. If you are building applications for users that you have total control of their desktop, then Silverlight is an awesome choice for you. But for those of us who have no control over the client, Adobe Flex beats Silverlight every time.