Many factors affect your computer's upload speed, and unfortunately most of them are not within your control. Every step between your computer and the one that you are attempting to upload to is a potential problem area that can cause your upload speed to drop. However, if you experience slow upload speeds, troubleshooting and research can help you determine the source of the problem.
The bandwidth of your Internet connection is a limiting factor for upload speeds. Most Internet connections are asymmetric; their maximum download and upload speeds are not the same. For example, a cable connection might have a maximum download speed of 3 Mbit/sec and a maximum upload speed of 600 Kbit/sec. If you are uploading a file directly to another person, her Internet connection speed is also a limiting factor; the fact that you might have a broadband connection is of little benefit if the other person has a dial-up modem.
Total Bandwidth Consumption
If you fully consume your Internet connection's available bandwidth using file-sharing software or an application that downloads files from newsgroups, your upload speed may be slower than it would be otherwise. If you need to upload a file quickly, close or pause other programs utilizing the Internet connection until the upload is complete.
Internet Service Provider
After data leaves your computer, it goes to your Internet Service Provider's network. ISPs generally segment their networks, so users close to each other share bandwidth to some extent. If you upload data during a time of peak usage -- when many others living near you are also using their Internet connections -- you may find that your upload speeds are slightly lower than they would be during off-peak hours. If you consistently experience poor upload speeds, it may be a sign of a more serious issue such as poor cable signal. Contact your ISP for assistance.
When you upload data, it may be passed from one server to another many times before it reaches its destination. Each of these steps is called a "hop." In some cases, one of these hops may be far slower than the others. To test this, open a Command Prompt window and type the command "tracert" followed by the address of the destination server, such as "tracert google.com." Windows sends a "ping" to each hop between your computer and the destination server. Each server typically has an address with a domain name indicating its ownership, such as "rr.com" or "qwest.com." If one hop has a much longer response time than the others on the list -- and its domain name is not the same as that of your ISP -- the problem exists elsewhere on the network chain and is not within your ISP's control.